2012-08-03 94 views
3
String html = Jsoup.connect(url).timeout(1000*1000).get().html(); 
Document doc = Jsoup.parse(html); 
Elements H2 = doc.select("div h2"); 
for (Element e: H2) { 
    //get absolute path of element e 
} 

看來沒有辦法只是使用Jsoup。如果沒有,任何其他的Java包幫助實現它?如何獲得html元素的絕對路徑

+0

你的意思是XPATH? – HashimR 2012-08-03 07:59:26

+0

@HashimR是的... – 2012-08-03 08:03:40

+0

如果你想我可以告訴你如何在JavaScript中做到這一點,但這可能不會幫助你? – Tom 2012-08-03 08:10:56

回答

2

Jsoup仍然不支持從元素直接獲取Xpath。

還有一個pending implementation suggestion

+0

此外,此鏈接還討論實施建議。 – UVM 2012-08-03 08:16:03

+0

是的。但在問題中列出。讓我編輯我的答案。 – HashimR 2012-08-03 08:46:49

0

以下鏈接介紹瞭如何在jsoup

jsoup: Java HTML Parser

而在這篇文章的最後申請XPATH筆者有其評論:

「如果你想提取特定數據從HTML,然後Jsoup是要走的路。「

0

沒有這樣的東西作爲一個元素的「絕對路徑」。有很多不同的路徑可以選擇一個元素。這樣的路徑,人們有時會問的例子有:

/a/b/c/d 
/a[1]/b[2]/c[3]/d[4] 
/*[1]/*[2]/*[3]/*[4] 

問題與前兩種情況是,他們是否有參與的命名空間不起作用。第三條路徑解決了這個問題,但路徑並不像人們有時喜歡的那樣具有信息量。如果你想要一個既有信息又獨立於命名空間上下文的路徑,那麼你需要一些使用謂詞*[local-name()='a' and namespace-uri()='......']的謂詞。

這是名稱空間的困難,這意味着你沒有找到許多庫路徑返回元素的路徑。