将 org.w3c.dom.Element 转换为 org.dom4j.Element

Converting org.w3c.dom.Element to org.dom4j.Element

我想使用 javax.xml.xpath XPath APIs 进行 XML 读写。

我的整个应用程序都使用 dom4j 元素,现在 javax.xml.xpath API 不接受 org.dom4j.document。所以我使用下面的代码

将这些文档转换为 org.w3c.dom.Document
org.w3c.dom.Document w3cDom = new DOMWriter().write(doc);

我已经使用了 API 之类的评估并且我得到了 org.w3c.dom

类型的节点

由于我的其他代码完全与 dom4j 相关,有什么方法可以将 org.w3c.dom.(Node or Element) 转换为 org.dom4j.(Node or Element) ??

PS:- 我不想使用 dom4j.XPath 因为它在内部调用 jaxen.jar

使用dom4j DOMReader.read()方法:

org.w3c.dom.Document w3cDom = new DOMWriter().write(doc);
org.dom4j.io.DOMReader reader = new DOMReader();
org.dom4j.Document document = reader.read(w3cDoc);

或使用DOMReader.readElement()方法。

Saxon 提供了 JAXP XPath API 的实现,它能够直接读取 DOM4J 树,无需转换为 DOM。这样你就可以吃蛋糕了。