web-dev-qa-db-ja.com

解析および変更されたDOMドキュメントをxmlファイルに保存する方法は?

Xml-fileがあります。私はそれを読んで、いくつかの変更を行い、新しい変更されたバージョンを新しい宛先に書き込む必要があります。

このファイルを(DocumentBuilderFactoryDocumentBuilderDocumentなどを使用して)読み取り、解析、およびパッチすることができました。

しかし、私はそのファイルを保存する方法を見つけることができません。プレーンテキストビュー(Stringとして)を取得する方法はありますか?

39
Roman

このような何かが動作します:

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

transformer.transform(input, output);
65
skaffman

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
Lukas Eder

これにより、xml形式を定義できるようになります

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