经典ASP不是我的第一语言,我需要修复错误。我突出了问题,但有点卡住了。
我有以下SOAP响应,Root var正在加载数据:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<checkVatResponse xmlns="urn:ec.europa.eu:taxud:vies:services:checkVat:types">
<countryCode>GB</countryCode>
<vatNumber>xxxxxxx</vatNumber>
<requestDate>2012-12-05+01:00</requestDate>
<valid>true</valid>
<name>XYZ LIMITED</name>
<address>Jon Street
London</address>
</checkVatResponse>
</soap:Body>
</soap:Envelope>
现在我需要提取'有效节点。我尝试过以下但无济于事
Set Root = oXmlDom.documentElement
response.write(Root.SelectSingleNode("SOAP:Envelope/SOAP:Body/checkVatResponse/valid").text)
response.write(Root.SelectSingleNode("SOAP:Envelope/SOAP:Body/urn:checkVatResponse/valid").text)
response.write(Root.SelectSingleNode("//urn:valid").text)
请告诉我明显的问题!
答案 0 :(得分:0)
好的,这里有几件事。首先,XML区分大小写,因此您需要执行soap:Body
而不是SOAP:Body
等Select语句。
其次,。documentElement
函数返回XML的第一个元素,在本例中为soap:Envelope
,因为您使用SelectSingleNode
对象中的Root
你创建了,然后这告诉解析器寻找以下内容:
<soap:Envelope>
<soap:Envelope>
<soap:Body>
所以只需在SelectSingleNode语句中保留第一个分支,例如:
response.write(Root.SelectSingleNode("soap:Body/checkVatResponse/valid").text)
希望有所帮助。