2010-11-15 47 views

回答

4

我假設你想從去任何想法:

org.dom4j.Document 

要:

org.w3c.dom.Document 

dom4j quick start guide

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,你應該有你需要的東西。

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(); 
} 
+0

非常感謝,這工作很好! – 2011-10-04 22:13:18

6

檢出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) 
+0

完美的作品,謝謝 – Anand 2014-03-18 08:53:24