vbscript:soapname响应的selectednamespaces不能与xpath一起使用

时间:2015-02-23 16:02:57

标签: xml soap xpath vbscript

以前关于为肥皂信息定义命名空间的问题已经有了很好的答案,但是我似乎无法让我的工作。肥皂信息如下:

<?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

0 个答案:

没有答案