Мне нужно преобразовать сборку xml с документом dom4j в документ w3c, и я понятия не имею, как это сделать...
преобразовать документ dom4j в документ W3c
comment
Пожалуйста, предоставьте более подробную информацию о том, что вы хотите сделать, по крайней мере, мне это действительно неясно.
- person MeBigFatGuy   schedule 15.11.2010
Ответы (3)
Я предполагаю, что вы хотите перейти от:
org.dom4j.Document
To:
org.w3c.dom.Document
Из краткого руководства по началу работы с dom4j:
Document document = ...;
String text = document.asXML();
Из примера JavaRanch для преобразования строки в документ:
public static Document stringToDom(String xmlSource)
throws SAXException, ParserConfigurationException, IOException {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
return builder.parse(new InputSource(new StringReader(xmlSource)));
}
Объедините 2, и у вас должно быть то, что вам нужно.
person
javamonkey79
schedule
15.11.2010
Проверьте DOMWriter. Это работает для меня:
import org.dom4j.DocumentHelper;
import org.dom4j.io.DOMWriter;
org.dom4j.Document dom4jDoc = DocumentHelper.createDocument();
org.w3c.dom.Document w3cDoc = new DOMWriter().write(dom4jDoc)
person
Kirby
schedule
20.04.2012
Если у вас есть большие документы, вы можете избежать сериализации вашего документа в текст из соображений производительности. В этом случае для преобразования лучше всего использовать события SAX напрямую:
private static final TransformerFactory transformerFactory =
TransformerFactory.newInstance();
public static org.w3c.dom.Document toW3c(org.dom4j.Document dom4jdoc)
throws TransformerException {
SAXSource source = new DocumentSource(dom4jdoc);
DOMResult result = new DOMResult();
Transformer transformer = transformerFactory.newTransformer();
transformer.transform(source, result);
return (org.w3c.dom.Document) result.getNode();
}
person
Chris Lercher
schedule
15.11.2010