2011-12-22 36 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'] 
相關問題