2010-12-30 9 views
33

Ich habe XML-Datei. Ich muss es lesen, einige Änderungen vornehmen und neue geänderte Version an ein neues Ziel schreiben.Wie geparste und geänderte DOM-Dokument in XML-Datei zu speichern?

Ich konnte diese Datei lesen, parsen und patchen (mit DocumentBuilderFactory, DocumentBuilder, Document und so weiter).

Aber ich kann keinen Weg finden, wie Sie diese Datei speichern. Gibt es eine Möglichkeit, seine Klartextansicht (wie String) oder einen besseren Weg zu bekommen?

Antwort

58

So etwas wie dies funktioniert:

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

transformer.transform(input, output); 
2

das funktionieren wird, vorausgesetzt, Sie verwenden 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(); 
} 
0

Das gibt Ihnen die Möglichkeit, XML-Format

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