2016-05-08 129 views
4

我有一個xml文件作爲org.w3c.dom.Document doc中的Java對象,我想將其轉換爲File文件。如何將文檔類型轉換爲文件? 謝謝將org.w3c.dom.Document轉換爲文件文件

編輯: 我想在類型爲File的現有xml文件(標準dita)中添加元數據元素。 我知道一種將元素添加到文件的方法,但是我必須將該文件轉換爲org.w3c.dom.Document。我這樣做,該方法的loadXML:

private Document loadXML(File f) throws Exception{ 
DocumentBuilder b = DocumentBuilderFactory.newInstance().newDocumentBuilder(); 
return builder.parse(f); 

之後,我改變了org.w3c.dom.Document中,那麼我想繼續與該程序的流量,我要的書籍DOC轉換回檔案文件。什麼是有效的方式來做到這一點?或者什麼是更好的解決方案來獲取XML文件中的某些元素而不進行轉換? 感謝

+1

有要麼太多可能的答案,還是很好的答案就太長了這種格式。請添加詳細信息以縮小答案集或隔離幾個段落中可以回答的問題。 –

+0

我在第一篇文章中添加了額外的信息 – jer08

+0

我不確定將DOM轉換爲文件應該是什麼意思。您可以將DOM的內容序列化爲XML,將其寫入字符串或文件;你在問什麼?我也不確定你想要做什麼,以及爲什麼不能通過DOM API來完成。你實際嘗試完成的一個例子可能會有所幫助。 – keshlam

回答

6

您可以使用一個變壓器類輸出整個XML內容到一個文件,如下顯示:

Document doc =... 

// write the content into xml file 
    DOMSource source = new DOMSource(doc); 
    FileWriter writer = new FileWriter(new File("/tmp/output.xml")); 
    StreamResult result = new StreamResult(writer); 

    TransformerFactory transformerFactory = TransformerFactory.newInstance(); 
    Transformer transformer = transformerFactory.newTransformer(); 
    transformer.transform(source, result); 

希望這可以幫助。

0

隨着JDK 1.8.0短的方法是使用內置的XMLSerializer

import com.sun.org.apache.xml.internal.serialize.XMLSerializer; 

Document doc = //use your method loadXML(File f) 

//change Document 

java.io.Writer writer = new java.io.FileWriter("MyOutput.xml"); 
XMLSerializer xml = new XMLSerializer(writer, null); 
xml.serialize(doc);