Преобразование org.w3c.dom.Element в org.dom4j.Element - PullRequest
0 голосов
/ 26 октября 2018

Я хочу использовать javax.xml.xpath API-интерфейсы XPath для чтения и записи 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. (узел или элемент) в org.dom4j. (узел или элемент) ??

PS: - я нехочу использовать dom4j.XPath, поскольку он внутренне вызывает jaxen.jar

Ответы [ 2 ]

0 голосов
/ 27 октября 2018

Saxon предоставляет реализацию JAXP XPath API, которая способна читать деревья DOM4J напрямую, без преобразования в DOM.Так что вы можете съесть свой торт и съесть его.

0 голосов
/ 26 октября 2018

Используйте метод 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().

...