如何获取html元素的绝对路径

时间:2012-08-03 07:56:22

标签: java html xpath jsoup

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包帮助实现它?

4 个答案:

答案 0 :(得分:2)

Jsoup仍然不支持直接从元素获取Xpath。

仍有pending implementation suggestion

答案 1 :(得分:1)

这个问题有解决方案。

很久以前我提供了答案:

https://stackoverflow.com/a/4747858/36305

答案 2 :(得分:0)

以下链接说明了如何在jsoup中应用XPATH

jsoup: Java HTML Parser

在本文的最后,作者发表了评论:

  

“如果您想从HTML中提取特定数据,那么Jsoup就是   要走的路。“

答案 3 :(得分:0)

没有元素的“绝对路径”这样的东西。有许多不同的路径可以选择一个元素。人们有时会要求的这种路径的例子是:

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

前两种情况的问题是如果涉及名称空间它们不起作用。第三条路径解决了这个问题,但路径并不像人们有时喜欢的那样信息丰富。如果您想要一个信息丰富且独立于命名空间上下文的路径,那么您需要使用*[local-name()='a' and namespace-uri()='......']形式的谓词的东西。

命名空间的困难意味着您找不到许多返回元素路径的库例程。