我有xml文件。我需要阅读它,进行一些更改并将新的更改版本写入新目的地。
我设法阅读,解析和修补此文件(使用DocumentBuilderFactory
,DocumentBuilder
,Document
等等。
但是我找不到如何保存该文件的方法。有没有办法让它的纯文本视图(如String
)或更好的方式?
答案 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);