我试图在执行xpath查询后选择一组结果节点中的第一个元素.
当我这样做:
//dl
Run Code Online (Sandbox Code Playgroud)
我得到以下结果集:
[<dl>?…?</dl>?, <dl>?…?</dl>?]
Run Code Online (Sandbox Code Playgroud)
我如何获得第一个?这些都不起作用:
//dl[1]
//dl[position()=1]
Run Code Online (Sandbox Code Playgroud)
我正在Chrome的Web Inspector中执行此操作.
Way*_*ett 62
使用以下内容:
(//dl)[1]
Run Code Online (Sandbox Code Playgroud)
括号很重要.您希望得到第一个节点//dl
(不是作为dl
其父级的第一个子元素的元素集(这是什么//dl[1]
(没有parens)返回)).
当人们意识到这//
是简写(即完全扩展到)时,这更容易看到,/descendant-or-self::node()/
这//dl[1]
相当于:
/descendant-or-self::node()/dl[1]
Run Code Online (Sandbox Code Playgroud)
......这显然不是你想要的.相反,你正在寻找:
(/descendant-or-self::node()/dl)[1]
Run Code Online (Sandbox Code Playgroud)