zählen von Kind-Knoten mit XPATH
Habe ich folgende XML -
<orderList>
<orderInfo orderId="xyz" returnCode="Pending" />
<orderInfo orderId="yzz" returnCode="Shipped">
<orderDetail shipped-date="xxxx-xx-xx xx:xx:xx">
<order>
....
</order>
</orderDetail>
</orderInfo>
</orderList>
Möchte ich zählen # der Bestellung unter jedem orderDetail Element ...
Ich habe versucht, diesen link ( XPath-um die Anzahl der Kind-Knoten basiert auf komplexen filter ), aber es hat nicht geholfen
Kam ich auf diesem Weg
count(//orderList/orderInfo/orderDetail[count(order)])
- Welche Sprache verwenden Sie, um wrap-around-XPath? Man braucht so etwas wie
foreach //orderList/orderInfo/orderDetail give count(order)
- Um zu klären,, Sie möchten eine Liste von zahlen als Ergebnis werden für jede
orderDetail
?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie zählen möchten alle
order
Elemente in derorderList/orderInfo/orderDetail
Knoten (ignoriert den aktuellen Kontext), dann könnte man verwenden:Wenn Sie möchten, um die Anzahl der Bestellungen für eine bestimmte
orderDetail
, dann sollten Sie ein Prädikat zu wählen dieorderDetail
Sie wollen:Es sei denn, Sie sind mit Hilfe von XPath 2.0 oder eine höhere version, werden Sie nicht in der Lage, um wieder eine Sammlung von Ergebnissen mit einem einzigen Ausdruck. Aber Sie können auswählen, dass alle
orderDetail
Elemente (//orderList/orderInfo/orderDetail
), Durchlaufen Sie und zählen Sie die Reihenfolge der Elemente im aktuellen Kontext, oder setzen Sie das Prädikat den Wert als variable zur Auswahl einer bestimmtenorderDetail
.