Xquery不同值

Xquery不同值,xquery,Xquery,我正在得到我想要的模式。但我需要做的一件事是消除重复值。因此我使用不同的值,但该函数所做的是显示一个元素中的所有值 输入模式: <?xml version="1.0" encoding="UTF-8"?> <hotel> <food> <name>Burger</name> <cost>20</cost> </food> <food> <name>Piz

我正在得到我想要的模式。但我需要做的一件事是消除重复值。因此我使用不同的值,但该函数所做的是显示一个元素中的所有值

输入模式:

<?xml version="1.0" encoding="UTF-8"?>
<hotel>
<food>
    <name>Burger</name>
    <cost>20</cost>
</food>
<food>
    <name>Pizza</name>
    <cost>20</cost>
</food>
<food>
    <name>Cola</name>
    <cost>5</cost>
</food>
<food>
    <name>Lemonade</name>
    <cost>5</cost>
</food>
<food>
    <name>Ice Cream</name>
    <cost>10</cost>
</food>
<food>
    <name>Cookies</name>
    <cost>10</cost>
</food>
</hotel>

汉堡
20
披萨
20
可乐
5.
柠檬水
5.
冰淇淋
10
曲奇饼
10
目前的产出:

<type>
<cost>01</cost>
<food>burger fries cola</food>
</type>

01
汉堡薯条可乐
期望的:

<type>
<cost>01</cost>
<food>burger</food>
<food>fries</food>
<food>cola</food>
</type>

01
汉堡
炸薯条
可乐
基本上就是以这个价格买到所有的食物

我的Xquery如下所示:

let $cost:= doc("Untitled7.xml")/hotel/food/cost
for $unique in distinct-values(doc("Untitled7.xml")/hotel/food/cost)
let $food:= distinct-values(doc("Untitled7.xml")hotel/food[cost=$unique]/name)
where $unique = $cost
return
<type>
<year>{$unique}</year>
<food>{$food}</food>
</type>
let$cost:=doc(“Untitled7.xml”)/hotel/food/cost
不同价值的$unique(doc(“Untitled7.xml”)/hotel/food/cost)
let$food:=不同的值(doc(“Untitled7.xml”)hotel/food[cost=$unique]/name)
其中$unique=$cost
返回
{$unique}
{$food}
任何帮助都将不胜感激:)

distinct-values()将返回一系列字符串:('burger'、'fries'、'cola'),但现在您正在立即输出它。您需要做的是在另一个FLWOR语句中迭代$food变量:

return
<type>
<year>{$unique}</year>
{
  for $f in $food return <food>{$f}</food>
}
</type>
返回
{$unique}
{
在$food return{$f}中的$f
}