簡體   English   中英

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

[英]How to save parsed and changed DOM document in xml file?

我有 xml 文件。 我需要閱讀它,進行一些更改並將新的更改版本寫入某個新目的地。

我設法讀取、解析和修補此文件(使用DocumentBuilderFactoryDocumentBuilderDocument等)。

但我找不到如何保存該文件的方法。 有沒有辦法讓它是純文本視圖(作為String )或任何更好的方法?

像這樣的工作:

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

transformer.transform(input, output);

如果您使用的是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();
}

這將使您有可能定義 xml 格式

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM