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

Java 如何获取html元素的绝对路径,java,html,xpath,jsoup,Java,Html,Xpath,Jsoup,仅仅使用Jsoup似乎无法做到这一点。如果没有,还有其他java包可以帮助实现吗?下面的链接解释了如何在jsoup中应用XPATH 在这篇文章的结尾,作者有自己的评论: “如果您想从HTML中提取特定数据,那么Jsoup是 还有很长的路要走。” Jsoup仍然不支持直接从元素获取Xpath 仍然存在一个。元素没有“绝对”路径这样的东西。有许多不同的路径可以选择元素。人们有时要求的这类路径的例子有: String html = Jsoup.connect(url).timeout(1000*10

仅仅使用Jsoup似乎无法做到这一点。如果没有,还有其他java包可以帮助实现吗?

下面的链接解释了如何在jsoup中应用XPATH

在这篇文章的结尾,作者有自己的评论:

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


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

仍然存在一个。

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

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
}
前两种情况的问题是,如果涉及名称空间,它们就不起作用。第三条路径解决了这个问题,但这条路径并不像人们有时希望的那样信息丰富。如果您想要一个信息丰富且独立于名称空间上下文的路径,那么您需要使用以下形式的谓词:
*[local-name()='a'和namespace-uri()='…']


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

有解决此问题的方法

有一次,我给出了以下回答:


如果您愿意,我可以告诉您如何使用javascript完成,但这可能对您没有帮助?此链接还讨论了实现建议。
/a/b/c/d
/a[1]/b[2]/c[3]/d[4]
/*[1]/*[2]/*[3]/*[4]