如何使用Classic ASP从XML中提取特定标记数据

时间:2013-01-30 18:57:04

标签: xml asp-classic xml-parsing

我在IIS服务器上有一个XML文件存储。我试图在<amount>代码中获取<TotalNetCharge>的值。

以下是位于文件位置的标记:

<TotalNetCharge>
<Currency>USD</Currency> 
<Amount>92.33</Amount> 
</TotalNetCharge>

我尝试在变量中使用XML并从文件中读取它。两者都不起作用。这是代码:

Set oXML = Server.CreateObject("MSXML2.DomDocument.4.0")
'oXML.LoadXML(SOAPResponse) 
oXML.LoadXML("D:\myfile\XMLReply.xml")
For Each oNode In oXML.SelectNodes("//TotalNetCharge/Amount")
    Response.Write "test"
Next

Set oXML = Nothing

没有任何东西写入屏幕,所以我假设数据没有被加载,因为如果它是循环将被输入并且“test”写入屏幕。我也尝试加载注释掉的部分(SOAPResponse),我知道它有数据,因为我Response.Write它到屏幕上。任何人? 2天这个废话。

更新,这是替代代码。

Set objXMLDoc = CreateObject("Microsoft.XMLDOM")
objXMLDoc.async = False
objXMLDoc.loadXML(SOAPResponse)

Dim TransactionDetail, CustomerTransactionId

Set NodeList = objXMLDoc.getElementsByTagName("ServiceType")
For Each Node In NodeList
   Response.write(Node.text & "<br>")
Next
Set NodeList = objXMLDoc.getElementsByTagName("TotalNetCharge")
For Each Node In NodeList
   Response.write(Node.text & "<br>")
Next

1 个答案:

答案 0 :(得分:2)

错误的对象方法;

  • loadXML用于直接从字符串加载XML文档,而不是从文件或URL加载
  • load是您要从网址
  • 加载的内容