假設有這個XML文件:選擇循環varaible的兄弟姐妹或侄女在「for」循環中的XQuery
<Adam>
<JackSons>
<s1>Jack</s1>
<s2>Sara</s2>
</JackSons>
<PeterSons>
<s1>Peter</s1>
<n>
<s2>Anna</s2>
</n>
</PeterSons>
<DavidSons>
<q>
<s1>David</s1>
</q>
<n>
<s2>Suzann</s2>
</n>
</DavidSons>
</Adam>
我想獲得s2
這是每個S1的兄弟姐妹或侄女打電話內環路上兩者的功能,請注意,我們不知道除了每個s1
和s2
有共同祖先的XML的結構什麼,我試圖
let $db := doc('test2.xq')
for $s1 in $db//s1
let $s2 := $db//*[//$s1]/(s2, */s2)
return <p> {$s1/text()} marry {$s2/text()} </p>
它返回
<p>Jack marry SaraAnnaSuzann</p>
<p>Peter marry SaraAnnaSuzann</p>
<p>David marry SaraAnnaSuzann</p>
我希望
<p>Jack marry Sara</p>
<p>Peter marry Anna</p>
<p>David marry Suzann</p>
我沒有得到你想要達到的目標。添加預期的輸出可能會有所幫助。 –
@JensErat我寫了預期的輸出 – Ahmad
爲什麼那些被選中?爲了得到這個結果,你可以使用's2'。你在談論「我想選擇每個s1和s2的父母」 - 爲什麼你需要這樣做? –