Comment sélectionner plusieurs nœuds dans les différents niveaux?
Avoir cette (simplifié) XML:
<?xml version="1.0" encoding="UTF-8"?>
<kml>
<Document>
<Placemark>
<name>Poly 1</name>
<Polygon>
<coordinates>
-58.40844625779582,-34.60295278618136,0
</coordinates>
</Polygon>
</Placemark>
<Placemark>
<name>Poly 2</name>
<Polygon>
<coordinates>
-58.40414334150432,-34.59992445476809,0
</coordinates>
</Polygon>
</Placemark>
</Document>
</kml>
Comment puis-je sélectionner le nom et les coordonnées de chaque Repère?
Droit maintenant, je peux sélectionner leur nom avec l'expression XPath suivante:
//Document//Placemark//name
Comment puis-je sélectionner à la fois, sans autres données?
OriginalL'auteur Alejandro García Iglesias | 2012-06-14
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser un syndicat dans l'expression XPath. Suffit d'utiliser l'opérateur:
|
De ne pas utiliser le
//
(descendant axe) si vous n'en avez pas besoin. À l'aide de//
, ce serait également le travail://name | //coordinates
. C'est mieux en terme de performance pour spécifier le chemin d'accès exact.OriginalL'auteur toniedzwiedz
Utilisation:
Cette spécifie le union des résultats de deux expressions XPath-le standard XPath opérateur union
|
est utilisé. Sélectionnés sont tousname
éléments qui sont les enfants d'unPlacemark
élément qui est un petit-enfant de l'élément supérieur du document XML, plus touscoordinates
éléments qui sont les petits-enfants d'unPlacemark
élément qui est un petit-enfant de l'élément supérieur du document XML.Les éléments sélectionnés viennent dans l'ordre du document (bien que pas de norme standard du W3C document spécifie l'ordre), ce qui signifie que le résultat de l'évaluation (généralement de type XmlNodeList) tout
name
élément est directement suivie par son correspondantcoordinates
élément.OriginalL'auteur Dimitre Novatchev
Résolu: //Repère/*[self::nom ou descendant::coordonnées]
OriginalL'auteur luis long