我在这里关注了这个问题:Reading xml data using classic ASP to begin with,但我遇到了一个错误,我不知道为什么会这样。这可能是由于此DACK标准导致 XML 文件被格式化或可能与无法加载文件有关。
我总是以:
所需对象:'objXMLDoc.documentElement'
到目前为止,我的功能看起来像这样
public function extractValTicketNumber(xmlResponse)
Set objXMLDoc = Server.CreateObject("MSXML2.DOMDocument.3.0")
objXMLDoc.async = false
objXMLDoc.load Server.MapPath("/DOCK.xml")
Dim xmlProduct
For Each xmlProduct In objXMLDoc.documentElement.selectNodes("ns1:mt_DG_DACK_V3")
Dim TicketNumber : TicketNumber = xmlProduct.selectSingleNode("ns1:ticketNo").text
Next
response.write("Ticket Nummer: " & Ticketnummer)
end function
我的 XML 文件是这样的:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<ns1:mt_DG_DACK_V3 xmlns:ns1="urn:dg:dack">
<ns1:transactionID>012345678900000001</ns1:transactionID>
<ns1:externalTicketID>IN-6543210</ns1:externalTicketID>
<ns1:ticketNo>IN-0123456</ns1:ticketNo>
<ns1:returnMessage>Message successfully received and validated</ns1:returnMessage>
<ns1:returnCode>0</ns1:returnCode>
</ns1:mt_DG_DACK_V3>
的输出Server.MapPath("/DACK.xml")是正确的,因此应该加载文件。D:\TestIntranet\wwwroot\DOCK.xml
我可以以某种方式测试吗?我对经典的 ASP 并不太了解。
我试图将父节点更改为没有前缀的东西,testNode但仍然是同样的错误,所以我猜它与此无关。
更新:
我只是尝试将load字符串作为参数而不是文件,但错误仍然存在:
Set objXMLDoc = Server.CreateObject("MSXML2.DOMDocument.3.0")
dim xmlTestString : xmlTestString = "<Product><ProductCode>abc</ProductCode><ProductName>Name</ProductName></Product>"
objXMLDoc.async = False
objXMLDoc.load(xmlTestString)
