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

4

4 回答 4

2

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

仍有待实施的建议

于 2012-08-03T08:11:01.983 回答
1

这个问题有解决方案。

曾几何时,我提供了这个答案:

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

于 2012-08-03T12:54:43.067 回答
0

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

jsoup:Java HTML 解析器

在这篇文章的最后,作者有自己的评论:

“如果您想从 HTML 中提取特定数据,那么 Jsoup 就是您的最佳选择。”

于 2012-08-03T08:08:41.343 回答
0

没有元素的“绝对”路径之类的东西。有许多不同的路径可以选择一个元素。人们有时要求的此类路径的示例是:

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

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

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

于 2012-08-03T10:59:17.400 回答