2010-03-24 37 views
4

我試圖找出一種方法來存儲每個標記在特定頁面上的唯一引用。我不會有任何編輯頁面內容的能力,我將生成的UID在每次頁面刷新時保持不變。以後引用的唯一元素ID

由於瀏覽器不會爲元素生成任何類型的UID,所以我認爲唯一的方法就是執行一個腳本,它遍歷DOM併爲每個元素創建一個UID。我不知道這會有多準確,特別是考慮到每次腳本抓取頁面時都需要確保它爲標記創建相同的UID。

任何人都可以想到任何其他更準確的方式來映射頁面?

非常感謝。

回答

2

我需要完全相同的功能。我的想法是查看標籤的位置,相對於像BODY Tag這樣的固定元素,並使用類似XPATH的表達式作爲唯一ID。因此,例如,如果有一個HTML像

<BODY><TABLE><TD> 

...等,TD的唯一ID可能是/Body/Table/1...等等。但是,這假設下一次頁面呈現時,之前不會有更多的節點。略有改進可以是在生成時在路徑中使用「ID」標籤,而不在不使用的地方使用。例如,假設該網頁是:

<BODY> 
<DIV id="test"> 
<TABLE id="testtable"> 
<TR><TD></TD></TR> 
..... 

的TD標籤的唯一ID可/美體/格@測試/表@ TestTable的/ TD @ 0等

+0

感謝您的回覆。使用元素ID也不錯。我仍然覺得必須有一個強有力的方法。或者至少我希望有:) – Hanpan 2010-03-24 09:12:19

2

如果頁面的內容停留在刷新之間相同,那麼顯而易見的方法是在DOM中元素的位置上生成UID。它甚至不需要是XPath表達式;一個簡單的整數將會做。但是,如果內容在刷新之間可以改變,那麼任務變得更加困難(如果不是不可能的話)。