我有以下XML:返回第一個值if語句後真
<test>
<TestStruktur>
<TestReference>ID_text_random_uuid</TestReference>
<TestReference>ID_test_random_uuid</TestReference>
<Name>Some name</Name>
</TestStruktur>
<TestStruktur>
<TestReference>ID_test_random_uuid</TestReference>
<TestReference>ID_text_random_uuid</TestReference>
<Name>Some name</Name>
</TestStruktur>
</test>
我需要尋找TestReference元素,並檢查是否值包含test
字符串,然後從<Name>
元素返回值。我已經創建了xquery,但是它返回兩個值,因爲該語句對於兩個節點是正確的。 當然,這只是一個示例xml。我可以有很多TestStruktur
節點和更TestReference
節點
,這裏是我的XQuery:
declare function local:test($doc as node()) as xs:string {
for $test2 in $doc//test/TestStruktur
for $test in $test2/TestReference
return
if(contains($test, 'test')) then
data($test2/Name)
else()
};
for $doc in collection('Testing')
return local:test($doc)
有沒有什麼辦法,例如,打破循環,如果聲明是真實的時候?
+1,但'[position()= 1]'可以縮短爲'[1]' – dirkk 2015-03-02 09:52:54
絕對如此。我選擇了詳細的語法,因爲它可以更容易地進行範圍測試調整。 – 2015-03-02 11:03:58