normalize-space - это функция. Вы не можете использовать его там.
Вам нужен набор узлов.
может быть, вы имеете в виду
//br/preceding-sibling::*
или вы можете использовать normalize-space в предикате внутри квадратных скобок. Думайте о предикате как о фильтре или селекторе в наборе узлов. Так что вы можете сделать это:
//br/preceding-sibling::*[normalize-space()='Fred']
На английском языке, что переводится как «все элементы, предшествующие <br>
в документе, и для которого (нормализованный) текст -« Fred »». В этом документе:
<html>
<p>
<h2>Fred</h2>
<br/>
</p>
<table>
<tr>
<td>
<br/>
</td>
</tr>
</table>
</html>
... выражение xpath выбирает узел <h2>
.
Я понял это с помощью бесплатного инструмента XpathVisualizer, доступного в codeplex .