Вернуть несколько элементов данных
Используя Xquery, как я могу найти в файле ниже (состоящем из множества элементов) все элементы с "XC" в номере детали (их много), а затем для совпадений вернуть все 3 интересных элемента данных (номер детали), часть-имя и имя)? Возвращение - главная проблема - мои попытки приводят к каждой перестановке интересных элементов данных. Спасибо!
<catalog>
<item>
<description>
<partref>
<part-id>
<part-number>XC51222</part-number>
</part-id>
</partref>
<part-name>DSP, Network Vectoring<part-name>
<vendors>
<vendor1>
<pay-to>
<name>JCOF Industries</name>
</pay-to>
</vendor1>
</vendors>
</description>
</item>
<item>
</item>
[many items…]
</catalog>
1 ответ
Решение
xquery version "1.0";
let $sep := ','
for $x in catalog/item
where fn:matches($x/description/partref/part-id/part-number, 'XC')
return fn:string-join( ($x/description/partref/part-id/part-number/text(), $x/description/part-name/text(), $x/description/vendors/vendor1/pay-to/name/text()), $sep)