2010-03-29 55 views
1

我目前使用了SoapUI免費版3.2 Beta 2中 我有一個奇怪的問題與Xpath的斷言:SOAPUI及Xpath的:斷言一個簡單的節點

我有這樣的迴應:

(...) 而且我用這個XPath斷言, 「niveau」 使用id = '2' 是在響應:

Xpath表達式;

//*:niveau[@id='2'] 

和預期的結果是:

<mod0911:niveau id="2" libelle="Immatriculation" ordre="0" taille="0"/> 

但我有此錯誤消息: XPathContains比較失敗,希望[],實際是[空]

但如果我試試這個:

exists(//*:niveau[@id='2']) 

而預期的結果是:真 它的作品!!?

但是這種語法很難看懂&維護&我想使用第一種語法(我試圖忽略命名空間,添加它們...仍然不起作用)。

任何想法?

問候

回答

1

你聲明實際上是對在響應中的XML運行中的XPath。然後將其與「預期結果」中的文字進行比較。

我不是100%確定你要做什麼。鑑於這種迴應:

<root> 
    <a> 
    <b id="2" /> 
    </a> 
    <c> 
    </c> 
</root> 

如果你把這個在「聲明」//b[@id=2],它將運行對XML了XPath。該XPath(未經測試)應該只選擇<b>元素。

然後您的「預期結果」應該是:<b id="2" />

0

給pro版本試用一個旋轉,你會發現它內置了一個很好的xpath專家。通過示例請求,您可以選擇要查找的值,並生成xpath並顯示值。很酷。將xpath複製/粘貼到免費版本中,然後全部設置好。或者,如果你和我一樣,更加努力讓你的老闆爲你購買專業版。

2

您可以使用FirstObject XML Editor工具來生成Xpath.It將自動生成XPath供您選擇,就像您在soapUI Pro中所做的那樣,然後您可以在您的soapui免費版本中使用該Xpath。

0

您應該包含XML標籤不僅是節點的值。

如果您將期望值從[]更改爲<nodeName id=2 />,它應該可以工作。