я необходимо преобразовать XML-строить с dom4j на w3c документа и не имеют ни малейшего представления о том, как сделать это ...новообращенный dom4j docment в W3c документ
ответ
Я предполагаю, что вы хотите, чтобы перейти от :
org.dom4j.Document
To:
org.w3c.dom.Document
Document document = ...;
String text = document.asXML();
С JavaRanch example на строки в документ:
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, и вы должны иметь то, что вам нужно.
Если у вас есть большие документы, вам может потребоваться избежать сериализации документа в тексте по соображениям производительности. В этом случае лучше всего использовать события 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();
}
Большое спасибо, это сработало красиво! –
Проверьте 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)
совершенные работы, спасибо – Anand
Просьба представить более подробную информацию о том, что вы хотите сделать, по крайней мере, для меня это неясно. – MeBigFatGuy