Я сталкивался с этой раздражающей функцией раньше, и в то время я решил использовать событие onfocus, чтобы записать текущее значение текстового поля, а затем использовать событие onblur, чтобы проверить, соответствует ли текущее значение сохраненному значению. во время фокусировки. Например
<input type="text" name="txtTest" value="" onfocus="this.originalvalue=this.value" onblur="if (this.value != this.originalvalue) alert('Test has changed')"/>
normalize-space - это функция. Вы не можете использовать его там.
Вам нужен набор узлов.
, возможно, вы имеете в виду
//br/preceding-sibling::*
или можете использовать normalize-space в предикате в квадратных скобках. Думайте о предикате как о фильтре или селекторе в наборе узлов. Итак, вы можете сделать это:
//br/preceding-sibling::*[normalize-space()='Fred']
На английском языке это означает «все элементы, предшествующие
в документе, и для которых (нормализованный) текст -« Fred »». В этом документе:
<html>
<p>
<h2>Fred</h2>
<br/>
</p>
<table>
<tr>
<td>
<br/>
</td>
</tr>
</table>
</html>
... выражение xpath выбирает узел
.
Я выяснил это с помощью бесплатного инструмента XpathVisualizer, доступного на codeplex .