У меня есть следующий документ, в котором я хочу выбрать все узлы с их связанными идентификаторами, если все их элементы-узлы-наследники больше 300.
<item>
<deposit id="1">
<amount>1200</amount>
<amount>5000</amount>
<amount>2300</amount>
</deposit>
<deposit id="2">
<amount>300</amount>
<amount>1500</amount>
<amount>700</amount>
</deposit>
<deposit id="3">
<amount>300</amount>
<amount>500</amount>
<amount>700</amount>
</deposit>
<deposit id="4">
<amount>300</amount>
</deposit>
<deposit id="5">
<amount>3500</amount>
</deposit>
<deposit id="6">
<amount>1000</amount>
</deposit>
</item>
Я попытался запустить следующий блок XQuery, ноон дал мне то же, что и вышеупомянутый документ без каких-либо изменений.
let $e := $depot/deposit
for $a in $e/amount
return if (data($a/preceding-sibling::amount)>"300") then $e else ()
Я ожидаю получить следующий результат запроса,
<item>
<deposit id="1">
<amount>1200</amount>
<amount>5000</amount>
<amount>2300</amount>
</deposit>
<deposit id="5">
<amount>3500</amount>
</deposit>
<deposit id="6">
<amount>1000</amount>
</deposit>
</item>