gpt4 book ai didi

java - 从 org.w3c.dom.Node 获取 Xpath

转载 作者:IT老高 更新时间:2023-10-28 20:39:35 26 4
gpt4 key购买 nike

我可以从 org.w3c.dom.Node 获取完整的 xpath 吗?

说当前节点正指向xml文档中间的某个地方。我想提取该元素的 xpath。

我正在寻找的输出 xpath 是 //parent/child1/chiild2/child3/node。节点 xpath 的父节点。只需忽略具有表达式并指向同一节点的 xpath。

最佳答案

没有获取 XPath 的通用方法,主要是因为没有一个通用 XPath 可以标识文档中的特定节点。在某些模式中,节点将由属性唯一标识(idname 可能是最常见的属性。)在其他模式中,每个元素的名称(即标签)足以唯一地标识一个节点。在少数(不太可能,但可能)情况下,没有一个唯一的名称或属性可以将您带到特定节点,因此您需要使用基数(获取第 m 个子节点的第 n 个子节点。 ..)。

编辑:在大多数情况下,创建一个依赖于模式的函数来为给定节点组装 XPath 并不难。例如,假设您有一个文档,其中每个节点都由 id 属性唯一标识,并且您没有使用命名空间。然后(我认为)下面的伪 Java 将根据这些属性返回一个 XPath。 (警告:我还没有测试过这个。)

String getXPath(Node node)
{
Node parent = node.getParent();
if (parent == null) {
return "/" + node.getTagName();
}
return getXPath(parent) + "/" + "[@id='" + node.getAttribute("id") + "']";
}

关于java - 从 org.w3c.dom.Node 获取 Xpath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5046174/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com