Вы хотите :
//*[normalize-space()]
Выражение :
//*[string-length(normalize-space(text())) > 0]
неправильный ответ . Он выбирает все элементы в документе, чей текст первого дочернего текстового узла не является только пробелом.
Следовательно, это не будет выбирать :
<p><b>Hello </b><i>World!</i></p>
хотя этот абзац содержит довольно много текста ...