Я рекомендую вам принять ответ Стивена Д. Маевского, но вот объяснение (узлы текста выделены квадратными скобками):
<fieldset>[
]<legend>My Legend</legend>[
]<p>Some text</p>[
Text to capture
]</fieldset>
так /fieldset/text()
возвращает
"\n "
"\n "
"\n Text to capture\n"
И именно поэтому вы хотите /fieldset/text()[normalize-space()]
, и вы хотите, чтобы результат был обрезан перед использованием.
Также обратите внимание, что вышеприведенное сокращенно для /fieldset/text()[normalize-space(.) != '']
. Когда normalize-space()
возвращает непустую строку, предикат оценивается в true
, тогда как пустая строка оценивается в false
.