nokogiri:为什么这是一个无效的xpath?

时间:2009-10-11 17:17:07

标签: xpath nokogiri

//br/preceding-sibling::normalize-space(text())

我使用nokogiri获取无效的xpath表达式

1 个答案:

答案 0 :(得分:10)

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>节点。

我用free XpathVisualizer tool available on codeplex想出来了。

enter image description here