受到XPath的困扰

时间:2012-10-02 18:42:17

标签: html xpath

当谈到在XPath中编制索引时,我觉得我在这里遗漏了一些东西。

如果我在HTML文档中有两个表格标签,并且在Chrome控制台中输入

$x("//table[1]");
,我希望在页面上获得第一个表格标记。

相反,我得到一个包含两个表标签的列表。我怀疑它可能与使用

//
有关,但使用绝对XPath表达式会产生相同的结果。

我认为这是一个非常简单的误解,但在阅读文档时我没有看到它。

2 个答案:

答案 0 :(得分:1)

//table[1]返回所有表,它们是各自父母的第一个表子。

要使第一个表格使用/descendant::table[1]或使用XPath 2.0 (//table)[1]

Here它符合标准:

  

路径表达式// para [1]与路径表达式/ descendant :: para [1]的含义不同。后者选择第一个后代para元素;前者选择所有后代的para元素,这些元素是他们各自父母的第一个孩子。

答案 1 :(得分:0)

使用

(//table)[1]

即。所有表中的第一个。