2016-05-08 94 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);