获取xpath结果集中的第一个节点

tip*_*ipu 34 xpath

我试图在执行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)