Ответ 1
В предоставленном XML-документе:
<div id="comment">
<div class="title">Editor Description</div>
<div class="changed">Last updated: </div>
<br class="clear">
Lorem ipsum dolor sit amet.
</div>
верхний элемент /div
имеет 4 дочерних узла, которые являются текстовыми узлами. Первые три из этих четырех детей text-node
- whitespace-only
. Последний из этих 4 text-node
детей - это тот, который вам нужен.
Использование
/div/text()[last()]
Это отличается от:
/div/text()
Последнее может (в зависимости от того, сохраняются ли узлы whitespace-only
парсером XML), выбрать все 4 текстовых узла, но вы хотите только последний из них.
Альтернатива (если вы точно не знаете, какой text-node
вы хотите):
/div/text()[normalize-space()]
Это выбирает все text-node-children
из /div
, которые не являются whitespace-only
текстовыми узлами.