2014-09-30 60 views
0

我需要使用Xpath从SOAP响应中提取值。这里是SOAP Repsonse格式:使用xpath从动态SOAP响应中获取值

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
    <soap:Body> 
     <ns1:getServiceInfosResponse xmlns:ns1="http://ws.commande.lcm.somecompany.com/"> 
      <return xmlns:ns2="http://ws.commande.lcm.somecompany.com/"> 
       <customer> 
        <userid>12545646546</userid> 
        <servicesNumber>3</servicesNumber> 
        <service> 
         <serviceid>257</serviceid> 
         <state>activated</state> 
         <counterValue></counterValue> 
         <parametersNumber>0</parametersNumber> 
        </service> 
        <service> 
         <serviceid>692</serviceid> 
         <state>activated</state> 
         <counterValue></counterValue> 
         <parametersNumber>0</parametersNumber> 
        </service> 
        <service> 
         <serviceid>1077</serviceid> 
         <state>activated</state> 
         <counterValue>0</counterValue> 
         <parametersNumber>0</parametersNumber> 
        </service> 
       </customer> 
      </return> 
     </ns1:getServiceInfosResponse> 
    </soap:Body> 
</soap:Envelope> 

我绑获得的对价标签的值,其中服务ID是1077 这里就是我所做的,但它不工作:

/soap:Envelope/soap:Body/ns1:getServiceInfosResponse/return/customer/service/serviceid[text()='1077']/counterValue 

与此:

/soap:Envelope/soap:Body/ns1:getServiceInfosResponse/return/customer/service[serviceid='1077']/counterValue 

这是活动检查器的link

请出了什么问题

+0

你是什么语言使用 - java,php,其他? – 2014-09-30 08:59:18

+0

@ web-nomad:没有语言环境我正在寻找获取xpath中绝对路径的值 – MedAli 2014-09-30 09:00:40

+0

第一个XPath是错误的,因为'counterValue'不是'serviceid'的子节点。但是第二个XPath应该可以工作,假设名称空间前缀正确解决 – har07 2014-09-30 09:00:54

回答

0

肯定的问题是在你的SOAP文件的命名空间,如NS1,最好的办法是不理睬, 试试这个它的工作原理

/soap:Envelope/soap:Body/*/*/customer/service[serviceid='1077']/counterValue 
+0

感谢您的贡献,但这是行不通的,你可以通过这个链接直接查看http://www.utilities-online.info/xpath/?save=812fb3b7-1eb9-4270-87b1-a248b8daa947-xpath#.VCp16_l5OiR – MedAli 2014-09-30 09:21:31

+0

我已经测试并发送了答案,其奇怪的答案是不同的 http://www.freeformatter.com/xpath-tester.html#ad-output – Behzad 2014-09-30 09:34:05

+0

实际上,我在通信网站上试过这个,但它不起作用,但是当用这个本地应用程序http://www.bubasoft.net/product/xpath-builder/试用它的时候就可以了 – MedAli 2014-09-30 09:38:16