Нет необходимости в XQuery 3 для этого. Просто добавьте дополнительные return
между where
и следующими for
:
let $prices := fn:doc('/training/prices.xml')/prices
let $order := fn:doc('/training/order.xml')/order
where $prices/priceList/prod[@num=$order/item/@num]
return
for $kk in $prices/priceList/prod[@num=$order/item/@num]
return
<item>
{$kk}
</item>
Чтобы следовать превосходному совету Майкла и оптимизировать для возврата полных предметов, я бы перевернул XPath, и Возврат детали заказа напрямую. Что-то вроде:
let $prices := fn:doc('/training/prices.xml')/prices
let $order := fn:doc('/training/order.xml')/order
for $item in $order/item
where $prices/priceList/prod[@num = $item/@num]
return
$item
Или даже короче:
let $prices := fn:doc('/training/prices.xml')/prices
let $order := fn:doc('/training/order.xml')/order
return
$order/item[@num = $prices/priceList/prod/@num]
HTH!