用 ASP 打开一个 XML
Open a XML with ASP
我正在尝试用 ASP 阅读一个 XML 文件(ASP 的绝对初学者)。
XML开:
<?xml version="1.0" encoding="UTF-8"?>
<Reisen>
<Reise Reise-Nummer="5608" Status="Released">
<Pfad>Reisen/Europa/DE/Bayerischer_Wald/5608</Pfad>
<Informationen>
<Anforderung>1-2</Anforderung>
</Informationen>
<Reisedaten>
<Titel>Eine Reise durch den Bayrischen Wald</Titel>
</Reisedaten>
</Reise>
</Reisen>
ASP代码:
(file_name包含xml的文件名)
Set objXMLDoc = Server.CreateObject("MSXML2.DOMDocument.3.0")
objXMLDoc.async = False
objXMLDoc.setProperty "ServerHTTPRequest", true
objXMLDoc.load Server.MapPath("/xml/single/" & file_name)
Dim xmlProduct
For Each xmlProduct In objXMLDoc.documentElement.selectNodes("Reisen")
Dim reise : reise = xmlProduct.selectSingleNode("Reise").Attributes.GetNamedItem("Reise-Nummer").Text
Response.Write Server.HTMLEncode(reise)
Next
如果我调用这个脚本,我总是会收到错误 500。错误出现在 foreach 循环中...
有人可以告诉我如何解决吗?
我的理解是Reisen是根节点,里面有多个Reise子节点。在那种情况下,您不应该为 Reisen 使用 selectNodes。我测试了以下内容,似乎工作正常:
Set objXMLDoc = Server.CreateObject("MSXML2.DOMDocument.3.0")
objXMLDoc.async = False
objXMLDoc.setProperty "ServerHTTPRequest", true
objXMLDoc.load Server.MapPath("/xml/single/" & file_name)
Set root = objXMLDoc.documentElement.selectSingleNode("/Reisen")
Dim xmlProduct
For Each xmlProduct In root.selectNodes("./Reise")
Dim reise : reise = xmlProduct.Attributes.GetNamedItem("Reise-Nummer").Text
Response.Write Server.HTMLEncode(reise)
Next
我尝试了多个没有根的 Reisen 元素,但我得到了 HTTP 500,所以可能是你的 XML 无效导致了错误。
我正在尝试用 ASP 阅读一个 XML 文件(ASP 的绝对初学者)。
XML开:
<?xml version="1.0" encoding="UTF-8"?>
<Reisen>
<Reise Reise-Nummer="5608" Status="Released">
<Pfad>Reisen/Europa/DE/Bayerischer_Wald/5608</Pfad>
<Informationen>
<Anforderung>1-2</Anforderung>
</Informationen>
<Reisedaten>
<Titel>Eine Reise durch den Bayrischen Wald</Titel>
</Reisedaten>
</Reise>
</Reisen>
ASP代码: (file_name包含xml的文件名)
Set objXMLDoc = Server.CreateObject("MSXML2.DOMDocument.3.0")
objXMLDoc.async = False
objXMLDoc.setProperty "ServerHTTPRequest", true
objXMLDoc.load Server.MapPath("/xml/single/" & file_name)
Dim xmlProduct
For Each xmlProduct In objXMLDoc.documentElement.selectNodes("Reisen")
Dim reise : reise = xmlProduct.selectSingleNode("Reise").Attributes.GetNamedItem("Reise-Nummer").Text
Response.Write Server.HTMLEncode(reise)
Next
如果我调用这个脚本,我总是会收到错误 500。错误出现在 foreach 循环中... 有人可以告诉我如何解决吗?
我的理解是Reisen是根节点,里面有多个Reise子节点。在那种情况下,您不应该为 Reisen 使用 selectNodes。我测试了以下内容,似乎工作正常:
Set objXMLDoc = Server.CreateObject("MSXML2.DOMDocument.3.0")
objXMLDoc.async = False
objXMLDoc.setProperty "ServerHTTPRequest", true
objXMLDoc.load Server.MapPath("/xml/single/" & file_name)
Set root = objXMLDoc.documentElement.selectSingleNode("/Reisen")
Dim xmlProduct
For Each xmlProduct In root.selectNodes("./Reise")
Dim reise : reise = xmlProduct.Attributes.GetNamedItem("Reise-Nummer").Text
Response.Write Server.HTMLEncode(reise)
Next
我尝试了多个没有根的 Reisen 元素,但我得到了 HTTP 500,所以可能是你的 XML 无效导致了错误。