Ich bekomme mein gewünschtes Schema. Aber die eine Sache, die ich tun muss, ist, doppelte Werte zu beseitigen. Daher verwende ich unterschiedliche Werte, aber diese Funktion zeigt alle Werte innerhalb eines Elements an.Xquery distinct-values
Eingabeschema:
<?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>
Ausgang derzeit:
<type>
<cost>01</cost>
<food>burger fries cola</food>
</type>
Wunsch:
<type>
<cost>01</cost>
<food>burger</food>
<food>fries</food>
<food>cola</food>
</type>
Im Grunde das Essen alle für diesen Preis bekommen.
Mein Xquery ist wie folgt:
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>
Jede mögliche Hilfe geschätzt wird :)