J'ai le fichier XML. Je dois le lire, apporter des modifications et écrire une nouvelle version modifiée dans une nouvelle destination.
J'ai réussi à lire, analyser et corriger ce fichier (avec DocumentBuilderFactory
, DocumentBuilder
, Document
et ainsi de suite).
Mais je ne peux pas trouver un moyen de sauvegarder ce fichier. Existe-t-il un moyen d’obtenir une vue en texte brut (sous la forme String
) ou un meilleur moyen?
Quelque chose comme ça marche:
Transformer transformer = TransformerFactory.newInstance().newTransformer();
Result output = new StreamResult(new File("output.xml"));
Source input = new DOMSource(myDocument);
transformer.transform(input, output);
Cela fonctionnera si vous utilisez 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();
}
Cela vous donnera la possibilité de définir le format XML
new XMLWriter(new FileOutputStream(fileName),
new OutputFormat(){{
setEncoding("UTF-8");
setIndent(" ");
setTrimText(false);
setNewlines(true);
setPadText(true);
}}).write(document);