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

时间:2012-02-08 18:39:24

标签: xpath

我正在尝试在执行xpath查询后选择一组结果节点中的第一个元素。

当我这样做时:

//dl

我得到以下结果集:

[<dl>​…​</dl>​, <dl>​…​</dl>​]

我如何获得第一个?这些都不起作用:

//dl[1]
//dl[position()=1]

我正在Chrome的Web Inspector中执行此操作。

1 个答案:

答案 0 :(得分:59)

使用以下内容:

(//dl)[1]

括号很重要。您希望第一个节点来自//dl(而不是dl元素集合,这些元素是其父节点的第一个子节点(这是//dl[1](没有parens)返回的内容)。 / p>

当人们意识到//是({1}}的缩写(即完全展开到)/descendant-or-self::node()/以便//dl[1]等同于:

时,这会更容易看到
/descendant-or-self::node()/dl[1]

......这显然不是你想要的。相反,你正在寻找:

(/descendant-or-self::node()/dl)[1]