如何在xml文件中保存已解析和更改的DOM文档?

时间:2010-12-30 10:12:40

标签: java xml dom

我有xml文件。我需要阅读它,进行一些更改并将新的更改版本写入新目的地。

我设法阅读,解析和修补此文件(使用DocumentBuilderFactoryDocumentBuilderDocument等等。

但是我找不到如何保存该文件的方法。有没有办法让它的纯文本视图(如String)或更好的方式?

3 个答案:

答案 0 :(得分:65)

这样的工作:

Transformer transformer = TransformerFactory.newInstance().newTransformer();
Result output = new StreamResult(new File("output.xml"));
Source input = new DOMSource(myDocument);

transformer.transform(input, output);

答案 1 :(得分:2)

只要您使用xerces-j

,这将有效
public void serialise(org.w3c.dom.Document document) {
  java.io.ByteArrayOutputStream data = new java.io.ByteArrayOutputStream();
  java.io.PrintStream ps = new java.io.PrintStream(data);

  org.apache.xml.serialize.OutputFormat of =
                      new org.apache.xml.serialize.OutputFormat("XML", "ISO-8859-1", true);
  of.setIndent(1);
  of.setIndenting(true);
  org.apache.xml.serialize.XMLSerializer serializer =
                      new org.apache.xml.serialize.XMLSerializer(ps, of);
  // As a DOM Serializer
  serializer.asDOMSerializer();
  serializer.serialize(document);

  return data.toString();
}

答案 2 :(得分:0)

这将为您提供定义xml格式的可能性

new XMLWriter(new FileOutputStream(fileName),
              new OutputFormat(){{
                        setEncoding("UTF-8");
                        setIndent("    ");
                        setTrimText(false);
                        setNewlines(true);
                        setPadText(true);
              }}).write(document);