XPath: sélectionner le nœud de texte
ayant le XML suivant:
<node>Text1<subnode/>text2</node>
Comment choisir le premier ou le second noeud de texte via XPath?
quelque chose comme ça:
/node/text()[2]
bien sûr ne fonctionne pas parce que c'est le résultat fusionné de chaque texte à l'intérieur du noeud.
2 réponses
ayant le XML suivant:
<node>Text1<subnode/>text2</node>
Comment choisir le premier ou le second noeud de texte via XPath?
Utiliser :
/node/text()
sélectionne tous les enfants de noeuds de texte de l'élément supérieur (appelé" noeud") du document XML.
/node/text()[1]
sélectionne le premier enfant texte-noeud de l'élément supérieur (nommé "noeud") de le document XML.
/node/text()[2]
sélectionne le deuxième enfant de noeud de texte de l'élément supérieur (appelé" noeud") du document XML.
/node/text()[someInteger]
sélectionne l'enfant texte-noeud de l'élément supérieur (appelé" noeud") du document XML. Elle est équivalente à L'expression suivante de XPath:
/node/text()[position() = someInteger]
votre xpath devrait fonctionner . j'ai testé votre XPath et le mien dans les implémentations MarkLogic et Zorba Xquery/ Xpath.
les deux devraient fonctionner.
/node/child::text()[1] - should return Text1
/node/child::text()[2] - should return text2
/node/text()[1] - should return Text1
/node/text()[2] - should return text2