Comment récupérer le texte dans un nœud sans sélectionner le texte dans les enfants?
<div id="comment">
<div class="title">Editor's Description</div>
<div class="changed">Last updated: </div>
<br class="clear">
Lorem ipsum dolor sit amet.
</div>
En d'autres termes, je veux Lorem ipsum dolor sit amet.
plutôt que Editor's DescriptionLast updated: Lorem ipsum dolor sit amet.
Dans le document XML fourni:
<div id="comment">
<div class="title">Editor's Description</div>
<div class="changed">Last updated: </div>
<br class="clear">
Lorem ipsum dolor sit amet.
</div>
l'élément supérieur /div
a 4 nœuds enfants qui sont des nœuds de texte. Les trois premiers de ces quatre text-node
les enfants sont whitespace-only
. Le dernier de ces 4 text-node
les enfants est celui qui est recherché.
tiliser:
/div/text()[last()]
C'est différent de:
/div/text()
Ce dernier peut (selon que whitespace-only
les nœuds sont conservés par l'analyseur XML) sélectionnez les 4 nœuds de texte, mais vous ne voulez que le dernier d'entre eux.
ne alternative est (quand vous ne savez pas exactement lequel text-node
tu veux):
/div/text()[normalize-space()]
Cela sélectionne tous les text-node-children
de /div
qui ne sont pas whitespace-only
nœuds de texte.
Sélectionnez simplement text()
au lieu de .
:
div/text()
Sur le fragment XML donné, cela renvoie:
Lorem ipsum dolor sit amet.
Que dis-tu de ça :$doc/node()[3]/text()
En supposant que $ doc a le xml.