xml - 使用经典 ASP (DACK) 读取 XML
问题描述
我在这里关注了这个问题: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)
解决方案
如果您确信其中Server.MapPath()
包含指向 XML 文件的有效路径,那么您接下来要检查的Load()
是是否可以解析文件。
objXMLDoc.load Server.MapPath("/DOCK.xml")
If objXMLDoc.parseError = 0 Then
'Document loaded successfully without errors
Else
'Document cannot be parsed
Call Response.Write(objXMLDoc.parseError.reason)
End If
推荐阅读
- javascript - 在联系表 7 中选中复选框时更改列表项颜色
- scala - 带有 spark-testing-base 的 Scala Spark Streaming 单元测试抛出错误
- asp.net-core - 如何获取由环境变量设置的 DotNet Core ApplicationName
- javascript - Storing concatenated numbers as string in a 2D array. Result remains "undefined"
- firebase - 如何使用 Firebase 查询具有匿名键的数据
- assembly - GAS Intel 语法中的 GOTPCREL(%rip)
- java - Java: groupingBy subvalue as value
- android - 使用数据库+网络进行分页
- ios - 如何安装以前版本的 ios 应用程序?
- clojure - 为什么我无法在 Clojure 中加载文件?