Avoir le XML suivant:
<node>Text1<subnode/>text2</node>
Comment sélectionner le premier ou le deuxième nœud de texte via XPath?
Quelque chose comme ça:
/node/text()[2]
bien sûr, cela ne fonctionne pas car c'est le résultat fusionné de chaque texte à l'intérieur du nœud.
Avoir le XML suivant:
<node>Text1<subnode/>text2</node>
Comment sélectionner le premier ou le deuxième nœud de texte via XPath?
tiliser:
/node/text()
Ceci sélectionne tous les enfants de noeud de texte de l'élément supérieur (nommé "noeud") du document XML.
/node/text()[1]
Ceci sélectionne le premier enfant de noeud de texte de l'élément supérieur (nommé "noeud") du document XML.
/node/text()[2]
Ceci sélectionne le deuxième enfant de noeud de texte de l'élément supérieur (nommé "noeud") du document XML.
/node/text()[someInteger]
Ceci sélectionne l'enfant du nœud textuel someInteger-th de l'élément supérieur (nommé "nœud") du document XML. C'est l'équivalent de l'expression XPath suivante:
/node/text()[position() = someInteger]
votre xpath devrait fonctionner. J'ai testé votre xpath et le mien dans les implémentations de MarkLogic et de 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