2

XML ファイルに保存されたトレーニングの日付のリストがあり、すべてのトレーニングの日付を解析してきれいにフォーマットされたページに出力する小さな JavaScript ファイルがあります。このソリューションは、別のサーバー上の別の Web ページが同じ XML ファイルにアクセスする必要があると判断するまでは問題ありませんでした。

JavaScript を使用して別のサーバーにある XML ファイルを解析することはできないため、ASP スクリプトを使用することにしました。ただし、これを次のように実行すると、いくつかあるはずの値に一致するノードが 0 個あるという応答が返されます。

<%
Dim URL, objXML
URL = "http://www.site.com/feed.xml"
Set objXML = Server.CreateObject("MSXML2.DOMDocument.3.0")
objXML.setProperty "ServerHTTPRequest", True
objXML.async =  False
objXML.Load(URL)

If objXML.parseError.errorCode <> 0  Then
    Response.Write(objXML.parseError.reason)
    Response.Write(objXML.parseError.errorCode)
End If

Response.Write(objXML.getElementsByTagName("era").length)
%>

私の質問は 2 つあります。

  1. java-script を使用してリモート XML ファイルを解析する方法はありますか
  2. そうでない場合、コードが適切な応答を返さないのはなぜですか?
4

1 に答える 1

1

java-script を使用してリモート XML ファイルを解析する方法はありますか

SOP の制限を回避するには、JSONP で行うのと同じ方法で行うことができます (代わりに XML を送信するだけです)。

http://en.wikipedia.org/wiki/JSONP#JSONP

したがって、ページに script タグを (おそらく動的に) 挿入します。

<script type="text/javascript" 
        src="http://otherdomain.com/getXml?jsonp=parseXml">
</script>

サーバーは次のコンテンツを返します。

parseXml("<?xml version=\"1.0\">...");

次に、スクリプトで関数を定義するだけで済みparseXml(xmlStr)ます (ただし、既に関数があると思います)。

于 2010-03-31T16:21:18.317 に答える