我使用的是 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/