1

私はこれを数時間理解しようとしても無駄になりました。javascriptには、作成したXMLの文字列があります。

var txt="<bookstore><book type='cooking'>";
txt+="<title>Everyday Italian</title>";
txt+="<author>Giada De Laurentiis</author>";
txt+="<year>2005</year>";
txt+="</book>";

次に、これを使用してXMLdomを作成しました。

if (window.DOMParser) {
    var parser=new DOMParser();
    var xmlDoc=parser.parseFromString(txt,"text/xml");
}
else{ // Internet Explorer
    var xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
    xmlDoc.async=false;
    xmlDoc.loadXML(txt);
}

xmlDocをサーバーページ(私が思うにaspページ)に送信する必要があります。サーバーは、xmlファイルをローカルドライブに保存するように要求します。私はこれについてあまり経験がなく、障害にぶつかりました。XMLHttpRequestを作成し、xmlDocをaspページに投稿する必要があることを知っています。

var xmlhttp = new XMLHttpRequest();
xmlhttp.open("POST", "http://MYSERVERURL/xml.ASP", false);  
xmlhttp.send(xmlDoc); 

私の問題は、xmlDocを受け取り、xmlファイルに保存するように促すためにxml.ASPページに何を入れるべきかわからないことです。

私はこれまでにこれを持っていますが、ここからどこに行くべきか本当にわかりません:

<%
response.ContentType="text/xml"
set xmldoc = Server.CreateObject("Microsoft.XMLDOM")
xmldoc.async=false
xmldoc.load(request)
%> 

どんな助けでも大歓迎です。

ありがとう。

4

1 に答える 1

0

何を達成したいのかわかりませんが、[開く/保存]ダイアログボックスを強制的に表示し、スクリプトに投稿されたものをすべて保存できるようにするだけの場合は、次の簡単なコードでこれを行うことができます。

<%
Response.ContentType = "application/x-unknown"
Response.Addheader "Content-Disposition", "attachment; filename=""mydoc.txt"""
Response.Write(Request.Form)
%>

更新:URLデコード機能。

function URLDecode(sText)
    sDecoded = Replace(sText, "+", " ")
    Set oRegExpr = Server.CreateObject("VBScript.RegExp")
    oRegExpr.Pattern = "%[0-9,A-F]{2}"
    oRegExpr.Global = True
    Set oMatchCollection = oRegExpr.Execute(sText)
    For Each oMatch In oMatchCollection
        sDecoded = Replace(sDecoded,oMatch.value,Chr(CInt("&H" & Right(oMatch.Value,2))))
    Next
    URLDecode = sDecoded
End function
于 2012-10-17T04:11:02.657 に答える