2013-06-21 112 views
0

我試圖從下面的XML中檢索數據,但我嘗試的所有選項都給我空值。有人可以幫助!JMeter XPath Extractor問題

<?xml version='1.0' encoding='UTF-8'?> 
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"> 
    <S:Body> 
     <ns8:SearchQuoteResponse 
      xmlns="http://services.akshay.com/pr/search" xmlns:ns2="http://services.akshay.com/pr/po" 
      xmlns:ns3="http://services.akshay.com/pr/common" 
      xmlns:ns4="http://services.akshay.com/pr/fault" 
      xmlns:ns5="http://services.akshay.com/pr/appointment" 
      xmlns:ns6="http://services.akshay.com/pr/registration" 
      xmlns:ns7="http://services.akshay.com/pr/in" 
      xmlns:ns8="http://services.akshay.com/Services/ws" 
      xmlns:ns9="http://services.akshay.com/pr/q"> 
      <ns8:responseType>SUCCESS</ns8:responseType> 
      <ns8:message>Quote Search completed successfully.</ns8:message> 
      <ns9:Quote> 
       <ns9:quoteId>72620</ns9:quoteId> 
       <ns9:quoteResponse> 
        <ns9:quoteExpiryDate>2013-08-04T10:17:35.000Z</ns9:quoteExpiryDate> 
        <ns9:listQuoteItemResponse> 
         <ns9:respQuoteItemId>657222</ns9:respQuoteItemId> 
         <ns9:lineNumber>1</ns9:lineNumber> 
         <ns9:afterMarketPartDetails> 
          <ns3:warrantyType /> 
         </ns9:afterMarketPartDetails> 
         <ns9:listPrice>153.0</ns9:listPrice> 
         <ns9:netPrice>61.2</ns9:netPrice> 
         <ns9:partAvailability>IN</ns9:partAvailability> 
         <ns9:shippable>Y</ns9:shippable> 
        </ns9:listQuoteItemResponse> 
       </ns9:quoteResponse> 
       <ns9:createdDate>2013-06-20T16:17:34.996Z</ns9:createdDate> 
      </ns9:Quote> 
     </ns8:SearchQuoteResponse> 
    </S:Body> 
</S:Envelope> 

從上面的SOAP我需要<ns9:respQuoteItemId></ns9:respQuoteItemId>標籤的值,但是XPath的提取總是給我空值。 我曾嘗試下面的選項 -

1 - //*[local-name()="respQuoteItemId"]/text() 
2 - //*[local-name()='respQuoteItemId' and namespace-uri()='http://services.myportal.com/procurement/q'] 
3 - //ns8:SearchQuoteResponse/ns9:Quote/ns9:quoteResponse/ns9:listQuoteItemResponse/ns9:respQuoteItemId 

回答

0

你的第三個答案是最接近的,但它是在中間缺少/ns9:quoteResponse/完成。

+0

我不好,這是筆誤,而發佈,甚至與標籤它給了我Null值:( – Akshay

+0

然後,我不明白爲什麼該項目沒有被找到我建議你檢查你的名字空間綁定表達式中使用的前綴。祝你好運! –

+0

只是添加更多我得到下面異常當我嘗試第三選項。斷言失敗消息:前綴必須解析爲名稱空間:ns8 – Akshay

1

閱讀:

  • http://jmeter.apache.org/usermanual/component_reference.html#XPath_Assertion

    To overcome Xalan XPath parser implementation on which JMeter is based, you can 
    help the parsing by providing a Properties file which will contain: 
    - prefix1=Full Namespace 1 
    - prefix2=Full Namespace 2 
    ... 
    
    You reference this file in user.properties file using the property: 
    - xpath.namespace.config=<path to your properties file> 
    
+0

感謝您的建議,我遵循了所有步驟,但無法解決問題。命名空間對其他標籤只有失敗:( – Akshay

+0

顯示你爲命名空間設置的配置)工作正常嗎? –

+0

感謝PMD,我忘了發佈,不知何故它開始使用第三個選項,我把我的問題。 謝謝你的幫助!!! – Akshay