2011-12-22 72 views
1

我从谷歌的AdWords网站具有与同id多个元素获取数据。如何在具有相同ID的多个元素的文档中获取元素的XPATH?

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

你能否建议一个jQuery/JavaScript函数,它可以计算给定元素的XPath ,假设页面可能包含多个元素,并且具有相同的id

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

+0

包括与重复'id's的样本? – MattH 2011-12-22 22:41:27

+0

您是否要求我们提供一个XPath表达式,以获得这些元素中的某个元素?或者你在寻找一个JavaScript函数,它接受一个元素并吐出将选择该节点的XPath表达式? – 2011-12-22 23:30:42

+0

@Iwburk:我正在寻找接受一个元素,并返回其XPath的功能。 – 2011-12-23 05:47:07

回答

4

你知道你可以使用//*[@id='blah'][1][2]等访问xpath等是你正在寻找的答案?

+0

是的,我只是在寻找一个能够做到这一点的功能。 – 2011-12-22 23:16:32

+3

我觉得XPath是一个基于这样'[1]','[2]',而不是 – hugomg 2011-12-22 23:18:10

+0

你能解释一下“获取数据”,在哪些方面你在代码中“把它拿来”一些呢?你是如何选择元素的? – Martin 2011-12-23 09:16:45

0

如果你知道你想要将这个ID的第n次出现的元素,然后马丁的建议会奏效。

您可以通过多个属性搜索和定义的元素也缩小结果,说你知道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元件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'] 
相关问题