如何解析位于不同Web服务器上的XML文件?
问题描述:
我有一个保存到XML文件中的培训日期列表,并且我有一个小小的JavaScript文件,可以解析所有培训日期,并将它们排入整齐格式的页面。这个解决方案没有问题,直到我们决定让另一个服务器上的另一个网页访问同一个XML文件。如何解析位于不同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)
%>
我的问题是双重的:
- 是否有办法我可以使用java脚本来解析远程XML文件
- 如果没有,为什么我的代码没有给我正确的响应?
答
是,有一种方法,我可以使用Java脚本解析远程XML文件
要解决SOP限制,你可以做同样的方式,因为它与JSONP做(只是发送XML代替)
http://en.wikipedia.org/wiki/JSONP#JSONP
所以,你会(也许动态)在你的页面中插入脚本标签:
<script type="text/javascript"
src="http://otherdomain.com/getXml?jsonp=parseXml">
</script>
而服务器将返回该内容:
parseXml("<?xml version=\"1.0\">...");
那么你就只能在你的脚本,定义一个parseXml(xmlStr)
功能(但我认为你已经有一个)。
不错。我也喜欢这种方法。谢谢Chris_I。 – Stevko 2010-03-31 17:46:16