Java:如何获取 org.w3c.dom.Node 的 xpath?

标签 java xpath

我使用的是 Java 1.6。给定一个 org.w3c.dom.Node 对象,如何获取该节点在 XML 文档中的位置的 String XPath 表达式?该节点或其任何祖先/后代都不具有 id 属性。

最佳答案

我不相信有任何通过 DOM 的简单方法。问题在于没有单一规范的方法来识别给定节点。

话虽如此,您可能会发现 diffxml 中的 getXPath 函数很有用:http://diffxml.cvs.sourceforge.net/viewvc/diffxml/diffxml/src/java/org/diffxml/diffxml/fmes/NodeOps.java?view=markup

它将返回/node()[4]/node()[2] 等形式的 XPath。

更新:由于 diffxml 是 GPL 许可的,并且 getXPath 需要一些提取,我将其作为 XPathGen 在 github 上发布:https://github.com/amouat/XPathGen根据 Apache 许可证。

关于Java:如何获取 org.w3c.dom.Node 的 xpath?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8417328/

相关文章:

java - 如何隐藏/删除编辑器中的最小化按钮?

java - 使用 ANTLR 语法进行 Verilog 解析

Java通过位置获取Object属性

java - 访问 selenium webdriver 中的博主搜索框

xslt - XPATH选择整个树,仅包括第一棵

xpath - 如何使用 Selenium 的 xpath 获得第二个属性级别

java - 如何在 Netty 中处理 SSL 加密警报

java - 如何在 Web Start 应用程序中设置 Java DNS 解析器缓存 TTL?

java - Selenium 化物-无效选择器 : Unable to locate an element with the xpath expression

c# - 在 C# 中读取 xml Xpath() 命令时如何控制项目计数?