0
XML-Datei mitXquery während distinct-values
<map>
<links>
<link id="10" ordernum="0"></link>
<link id="20" ordernum="1"></link>
<link id="30" ordernum="2"></link>
</links>
<products>
<product id="10" group="2">...</product>
<product id="20" group="1">...</product>
<product id="30" group="2">...</product>
</products>
</map>
ich folgenden Xquery bin mit den products/@id
, geordnet nach den entsprechenden link/@ordernum
zu bekommen, aber nur einmal für die gleiche Gruppe.
for $linkid in //links/link
order by $linkid/@ordernum
return distinct-values(data(//products/product[@id=data($linkid/@id)]/@id))
Erwartete Ausgabe: 10, 20
Received Ausgang: 10, 20, 30
Wie um diesen Teil zu ändern, dass alle Daten aus den Produkten zu bekommen? Wenn ich die letzte Zeile zu: 'return/map/products/product [@ id = $ prodid]' ändere, gibt es nur ein Produkt zurück – frgtv10
wenn ich 'return data ($ prodid)' zurückschicke gibt es mir die richtigen multiplen IDs – frgtv10
@ frgtv10 - Welchen Prozessor benutzen Sie? Ich benutze Saxon-HE 9.5 und ändere die letzte Zeile in 'return/map/products/product [@ id = $ prodid]' korrekt und gibt beide 'product' Elemente zurück. –