2010-03-31 53 views
2

我有一个保存到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) 
%> 

我的问题是双重的:

  1. 是否有办法我可以使用java脚本来解析远程XML文件
  2. 如果没有,为什么我的代码没有给我正确的响应?

回答

1

是,有一种方法,我可以使用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)功能(但我认为你已经有一个)。

+0

不错。我也喜欢这种方法。谢谢Chris_I。 – Stevko 2010-03-31 17:46:16