当谈到在XPath中编制索引时,我觉得我在这里遗漏了一些东西。
如果我在HTML文档中有两个表格标签,并且在Chrome控制台中输入
$x("//table[1]");,我希望在页面上获得第一个表格标记。
相反,我得到一个包含两个表标签的列表。我怀疑它可能与使用
//有关,但使用绝对XPath表达式会产生相同的结果。
我认为这是一个非常简单的误解,但在阅读文档时我没有看到它。
答案 0 :(得分:1)
//table[1]
返回所有表,它们是各自父母的第一个表子。
要使第一个表格使用/descendant::table[1]
或使用XPath 2.0 (//table)[1]
。
Here它符合标准:
路径表达式// para [1]与路径表达式/ descendant :: para [1]的含义不同。后者选择第一个后代para元素;前者选择所有后代的para元素,这些元素是他们各自父母的第一个孩子。
答案 1 :(得分:0)
使用
(//table)[1]
即。所有表中的第一个。