Рассмотрим файл XML:XQUERY возвращает несколько значений вместо одного
Примечание: Там могут быть некоторые теги выше DEP тег или они могут отсутствовать.
Мне нужно показать список поставщиков в списке, именах товаров, которые они производят, и напротив каждого элемента название отдела, например.
Supp2
Item1, 2
Supp1
Item1, 2
Item2, 1
Это мой код:
<ul>
{
for $sup in distinct-values(doc("warehouse.xml")//supplier)
for $item in doc("warehouse.xml")//item[supplier = $sup]
return <li>{data($sup)} <ul> {
let $n:= $item/itemName
let $y:= doc("warehouse.xml")//dep[//itemName=$n]/@no
for $n1 in $n return <li>{data($n1), data($y)} </li>} </ul> </li>
}
</ul>
я столкнулся с двумя проблемами. Во-первых, что у отображает все номера отделов, начиная с 1. Другой является то, что если у меня есть 1 поставщик, который производит два элемента, вместо
Supp1
Item1, 2
Item2, 3
я
Supp1
Item1, 1,2, ...
Supp1
Item2, 1,2, ...
Не могли бы вы предложить, что может быть неправым? Я глубоко благодарен.
Глубоко благодарен за ваш ответ. Я использую Oxygen, и кажется, что «group by» там не определен. (http://www.w3schools.com/xpath/xpath_functions.asp) Любые предложения? –
@PiotrL. О, да, это очень малое количество, определенное в XQuery 3.0. Кажется, ваш процессор XQuery еще не поддерживает его. Я обновил свой ответ, чтобы он не использовал эту функцию. –