nokogiri: почему это - недопустимый xpath?

Я сталкивался с этой раздражающей функцией раньше, и в то время я решил использовать событие onfocus, чтобы записать текущее значение текстового поля, а затем использовать событие onblur, чтобы проверить, соответствует ли текущее значение сохраненному значению. во время фокусировки. Например

<input type="text" name="txtTest" value="" onfocus="this.originalvalue=this.value" onblur="if (this.value != this.originalvalue) alert('Test has changed')"/>
6
задан Jaaaaabbb 11 October 2009 в 17:17
поделиться

1 ответ

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 .

enter image description here

10
ответ дан 10 December 2019 в 00:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: