当我在Chrome开发者工具'上执行这些XPath表达式时通过google.com控制台,我得到了相同的结果
$x("(.//*[@id='gs_lc0'])")
$x("(//*[@id='gs_lc0'])")
XPath中dot的用法是什么?
答案 0 :(得分:2)
在XPath中,//
和.//
都是句法缩写:
//
是/descendant-or-self::node()/
.//
是self::node()/descendant-or-self::node()/
descendant-or-self
轴包含上下文节点和上下文节点的所有后代。 因此,//
和.//
之间的差异会减少到上下文节点的差异。
对于//
,上下文节点是根节点; //
是 absolute location path 。
对于.//
,上下文节点取决于上下文; .//
是relative location path。在Google Developer Tools控制台的顶级评估中,上下文节点是根节点,因此您将看到相同的结果。
简而言之:
//
。.//
。