我知道绝对XPath将从XML树中的根节点返回被检查的节点。
但我无法理解XPath中用于检查/查找节点的.//
的含义。
答案 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>
.//p
时id1
未选择第三段,因为第三段不在div
元素下。