le comptage des nœuds enfants à l'aide de XPATH
J'ai XML suivant
<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>
Je veux compter # d'ordre en vertu de chaque orderDetail élément ...
J'ai essayé ce lien ( XPath à compter de l'enfant de nœuds en fonction de filtre complexe ), mais il n'a pas aidé
Je suis venu avec ce chemin
count(//orderList/orderInfo/orderDetail[count(order)])
- Quelle langue utilisez-vous pour envelopper autour de XPath? Vous avez besoin de quelque chose comme
foreach //orderList/orderInfo/orderDetail give count(order)
- Pour clarifier, vous voulez une liste de numéros que le résultat – un pour chaque
orderDetail
?
Vous devez vous connecter pour publier un commentaire.
Si vous voulez compter tous
order
éléments dans leorderList/orderInfo/orderDetail
nœuds (sans tenir compte du contexte actuel), alors vous pouvez utiliser:Si vous voulez compter le nombre de commandes pour un
orderDetail
, alors vous devriez utiliser un prédicat pour sélectionner quiorderDetail
vous voulez:Sauf si vous êtes à l'aide de XPath 2.0 ou une version plus, vous ne serez pas en mesure de retourner une collection de résultats avec une seule expression. Mais vous pouvez sélectionner tous les
orderDetail
éléments (//orderList/orderInfo/orderDetail
), itérer et de compter l'ordre des éléments dans le contexte actuel, ou de définir le prédicat de la valeur d'une variable pour sélectionner unorderDetail
.