5

dom4j を使用した xml ビルドを w3c ドキュメントに変換する必要がありますが、その方法がわかりません...

4

3 に答える 3

9

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)
于 2012-04-20T19:23:33.180 に答える
6

私はあなたがから行きたいと思っていると思います:

org.dom4j.Document

に:

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つを組み合わせると、必要なものが得られるはずです。

于 2010-11-15T03:31:39.870 に答える
6

大きなドキュメントがある場合、パフォーマンス上の理由から、ドキュメントをテキストにシリアル化することは避けたい場合があります。その場合、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();
}
于 2010-11-15T09:52:11.223 に答える