XPath:如何通过索引选择具有某些属性的节点?

时间:2011-04-28 12:36:36

标签: xpath

我有几个具有某些特定属性的节点,我需要通过索引选择其中一个。例如,我需要选择第二个<div>和'test'类 - //div[@class='test'][2]不起作用。

有没有办法按索引选择具有某些属性的节点?怎么做?

2 个答案:

答案 0 :(得分:54)

这是常见问题解答

在XPath中,[]运算符具有比//伪运算符更高的优先级(绑定更强)。

因此,表达式为:

//div[@class='test'][2]

选择div属性为“test”的所有class元素以及谁(div元素)是其父级的第二个div子元素。这不是你想要的。

使用

(//div[@class='test'])[2]

答案 1 :(得分:2)

我相信每个XML规范,属性不被视为有订单 Note that the order of attribute specifications in a start-tag or empty-element tag is not significant.
here 我认为你最好重新分解你的结构,使得属性顺序没有描述任何东西。如果您可以提供更多详细信息,我们可能会提供建议。

编辑:重新阅读您的帖子,看起来您正在尝试查找节点顺序而不是属性顺序。允许节点顺序,您的语法看起来很好。你在做什么软件?