如何在具有相同ID的多个元素的文档中获取元素的XPATH?

时间:2011-12-22 22:34:18

标签: javascript jquery html dom xpath

我从Google的AdWords网站上获取数据,该网站包含多个具有相同id的元素。

我想得到一个给定元素的XPath。

你能否推荐一个可以计算给定元素的XPath的jQuery / JavaScript函数,假设该页面可能包含多个具有相同id 的元素?

请不要告诉我,我不应该有多个具有相同id的元素。这不是我的想法......

2 个答案:

答案 0 :(得分:4)

您知道可以使用//*[@id='blah'][1][2]来访问xpath,那么您正在寻找答案吗?

答案 1 :(得分:0)

如果您知道您想要的元素将是该id的第n个出现,那么Martin的建议将起作用。

您还可以通过搜索多个属性并定义元素来缩小结果,例如,您知道id对于具有特定名称或类的div元素是唯一的。

//div[@id='hello' and @name='world']

这对您来说已经足够了,但如果没有,那么您可以通过相对于其他元素进行搜索来找到您想要的元素。

给出xml:

<root>
    <div id='parent1'>
        <div id='element1' />
        <div id='element2' />
    </div>
    <div id='parent2'>
        <div id='element1' name='foo' />
        <div id='element2' name='bar' />
    </div>
</root>

您可以通过以下方式获得第二个元素2:

/root/div[2]/div[2]
//div[@id='parent2']/div[@id='element2']
//div[@id='element2' and name='bar']
//div[@id='element1' and @name='foo']/../div[@id='element2']