在XPath中.//的含义是什么?

时间:2015-07-13 03:42:26

标签: xml xpath

我知道绝对XPath将从XML树中的根节点返回被检查的节点。

但我无法理解XPath中用于检查/查找节点的.//的含义。

1 个答案:

答案 0 :(得分:10)

.是当前节点;它是self::node()的缩写。

//是后代或自我轴;它是/descendant-or-self::node()/的缩写。

同时,.//将从当前节点开始沿着后代或自身轴进行选择。将其与从文档根开始的//进行对比。

实施例

考虑以下HTML:

<html>
  <body>
    <div id="id1">
      <p>First paragraph</p>
      <div>
        <p>Second paragraph</p>
      </div>
    </div>
    <p>Third paragraph</p>
  </body>
</html>

//p会选择所有段落:

      <p>First paragraph</p>
      <p>Second paragraph</p>
      <p>Third paragraph</p>

另一方面,如果当前节点位于div元素(@id的{​​{1}}),则 "id1"将仅选择段落在当前节点下

.//p

请注意,当前节点为 <p>First paragraph</p> <p>Second paragraph</p> .//pid1未选择第三段,因为第三段不在div元素下。