以前关于为肥皂信息定义命名空间的问题已经有了很好的答案,但是我似乎无法让我的工作。肥皂信息如下:
<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<CM-AcctAutoFill xmlns="http://oracle.com/CM-AcctAutoFill.xsd">
<request>
<acctId>0000123456</acctId>
</request>
<response>
<returnCode>0</returnCode>
<autoFill>
<acctId>0000123456</acctId>
<ldcId>IL</ldcId>
<customerName>USER, TEST</customerName>
<phone>(888)444-1234</phone>
<enrlDt>1990-07-15</enrlDt>
<stopDt/>
<routingNo>088000014</routingNo>
<bankAccountNo>1234034721234</bankAccountNo>
</autoFill>
<serviceAddress>
<address>18 TEST LN</address>
</serviceAddress>
</response>
</CM-AcctAutoFill>
</soap:Body>
</soap:Envelope>
当我尝试使用xpath获取autoFill中的帐号和其他响应时,我什么都没得到。如果我手动修改文件以取出&#34; soap:&#34;和xmlns属性,它工作正常。
这是我的代码,提前感谢任何帮助。注意:这必须在vbscript中完成,这不是我的偏好。放置此脚本的软件只接受vbscript。这也是我的第一篇文章,所以如果我在格式化方面犯了任何错误,我会道歉。
Dim response
response = "c:\webSvcReponseMulti.xml"
Dim oXML
Set oXML = CreateObject("MSXML2.DOMDocument")
oXML.load(response)
oXML.async = False
oXML.setProperty "SelectionLanguage", "XPath"
oXML.setProperty "SelectionNamespaces", "xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/' " & _
"xmlns:r='http://oracle.com/CM-AcctAutoFill.xsd'"
Dim path
path = "/soap:Envelope/soap:Body/r:CM-AcctAutoFill/r:response/r:autoFill/r:acctId"
Set acct = oXML.selectNodes(path)
For Each objNode In acct
MsgBox objNode.text
Next