Как сохранить проанализированный и измененный документ DOM в XML файле?
У меня есть xml файл. Мне нужно прочитать его, внести некоторые изменения и записать новую измененную версию в новый пункт назначения.
Мне удалось прочитать, проанализировать и исправить этот файл (с DocumentBuilderFactory
, DocumentBuilder
, Document
и т.д.).
Но я не могу найти способ сохранения этого файла. Есть ли способ получить это текстовое представление (как String
) или любым лучшим способом?
Ответы
Ответ 1
Что-то вроде этого работает:
Transformer transformer = TransformerFactory.newInstance().newTransformer();
Result output = new StreamResult(new File("output.xml"));
Source input = new DOMSource(myDocument);
transformer.transform(input, output);
Ответ 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();
}
Ответ 3
Это даст вам возможность определить формат XML
new XMLWriter(new FileOutputStream(fileName),
new OutputFormat(){{
setEncoding("UTF-8");
setIndent(" ");
setTrimText(false);
setNewlines(true);
setPadText(true);
}}).write(document);