如何在XML文件中保存parsing和更改的DOM文档?
我有xml文件。 我需要阅读它,进行一些更改,并将新的更改版本写入新的目的地。
我设法阅读,parsing和修补这个文件(使用DocumentBuilderFactory
, DocumentBuilder
, Document
等)。
但我找不到如何保存该文件的方法。 有没有办法让它的纯文本视图(作为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);