2013-04-05 77 views
1

我有類似這樣的一個SOAP響應:如何使用XQuery在SoapUI中迭代SOAP響應?

<items> 
<item date="2009-10-02"> </item> 
<item date="2010-10-02"></item> 
<item date="2012-10-02"></item> 
</items> 

我需要使用XQuery和正則表達式我已經有了,如果在每個項目的日期有正確的格式進行檢查。我嘗試了迭代,但它一直警告我:「在當前響應中有多個匹配」。 這是我已經試過的:

let $items:= (//items) 
for $i in $items 
    return 1 

謝謝!

+0

你的XML是沒有很好地形成它錯過了項目的結束標記。請糾正它!如果你提供你已經使用的東西,它也可以讓別人更容易地提供解決方案。 – IndoKnight 2013-04-05 12:35:03

+0

我更正了XML,但這不是問題的關鍵,顯然這不是我真正的SOAP響應。 – 2013-04-05 12:37:40

+0

你想要什麼格式的日期? – IndoKnight 2013-04-05 12:50:48

回答

0

如果查詢處理器支持的XQuery 3.0和你感興趣的一個綜合作用的結果所有日期,使用「每-滿足」語法。

every $date in //item/@date satisfies matches($date, '[-\d]+') 

如果處理器不支持這種語法,你可以使用這樣的事情:

not(//item/@date/matches(., '[-\d]+') != true()) 

如果它只支持的XQuery 1.0,您可能需要包裝matches各地的XPath序列:

not(matches(//item/@date, '[-\d]+') != true()) 

如果你有興趣個人VA梅毒,使用此:

//item/@date/matches(., '[-\d]+') 

或者再次的XQuery 1.0:

for $date in //item/@date 
return matches($date, '[-\d]+') 
0

我終於對我自己的一些工作發現:

for $z in //item[1] 
return matches($z/@date, 'regularexp') 
+1

你說你需要檢查每個項目中的_dates是否有正確的format_,但是你只在這個查詢中檢查第一個日期。 – 2013-04-05 16:03:36