2014-09-30 29 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