使用经典的asp获取XML元素值

时间:2014-12-15 12:08:27

标签: xml asp-classic msxml

我有问题用经典的asp获取xml元素值。

这是xml:

<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <Add_ClubCustomer xmlns="http://someurl/">
      <Add_ClubCustomerResult>1607</Add_ClubCustomerResult>
    </Add_ClubCustomer >
  </soap:Body>
</soap:Envelope>

我想在经典的asp中获得1607值。


我的尝试

Set xmlDoc = Server.CreateObject("MSXML2.DOMDocument") 
xmlDoc.LoadXml(StrXml) 
xmlDoc.setProperty "SelectionLanguage", "XPath" 
xmlDoc.SetProperty "ServerHTTPRequest", True 
Set node = xmldoc.selectsinglenode("//Add_ClubCustomerResult") 
response.write node.text

1 个答案:

答案 0 :(得分:2)

问题是您在Add_ClubCustomer元素上设置的命名空间。

要绕过它,您需要删除命名空间( xmlns="http://someurl/" )或针对localname进行测试

所以,你的xpath应该变成

set node = xmldoc.selectSingleNode("//*[local-name() = 'Add_ClubCustomerResult']")