我有问题用经典的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
答案 0 :(得分:2)
问题是您在Add_ClubCustomer
元素上设置的命名空间。
要绕过它,您需要删除命名空间( xmlns="http://someurl/"
)或针对localname进行测试
所以,你的xpath应该变成
set node = xmldoc.selectSingleNode("//*[local-name() = 'Add_ClubCustomerResult']")