140 votes

XPath: sélectionner le nœud de texte

Ayant le code XML suivant:

<node>Text1<subnode/>text2</node>

Comment puis-je sélectionner le premier ou le deuxième nœud de texte via XPath?

Quelque chose comme ceci:

/node/text()[2]

bien sûr, ne veut pas travailler parce qu'il est le résultat fusionné de chaque texte à l'intérieur du nœud.

172voto

Dimitre Novatchev Points 147842

Ayant le code XML suivant:

<node>Text1<subnode/>text2</node> 

Comment puis-je sélectionner le premier ou le deuxième nœud de texte via XPath?

Utilisation:

/node/text()

Cette sélectionne tout le texte-enfants du nœud de l'élément supérieur (appelé "nœud") du document XML.

/node/text()[1]

Ceci sélectionne le premier texte-enfant du nœud de l'élément supérieur (appelé "nœud") du document XML.

/node/text()[2]

Ceci sélectionne le deuxième texte-enfant du nœud de l'élément supérieur (appelé "nœud") du document XML.

/node/text()[someInteger]

Ceci sélectionne la someInteger-ème nœud texte de l'enfant de l'élément supérieur (appelé "nœud") du document XML. Il est équivalent à l'expression XPath suivante:

/node/text()[position() = someInteger]

27voto

kadalamittai Points 879

votre xpath devrait fonctionner . j'ai testé votre xpath et le mien dans les deux MarkLogic et Zorba Xquery/ Xpath mise en œuvre.

Les deux doivent travailler.

/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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X