XML DOM-Baum in Datei speichern
Robert
- java
Hallöle,
ich hab hier ein Problem, daß ich vor lauter Wäldern den Baum nicht mehr sehe ...
Mit folgendem Code erzeuge ich einen DOM-Baum, der ein XML-Dokument (als Datei auf Platte) werden soll:
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
Document document;
try
{
DocumentBuilder builder = factory.newDocumentBuilder();
document = builder.newDocument();
Element root = (Element) document.createElement("filterset");
document.appendChild(root);
//hier weitere Elemente, die zum Baum hinzugefügt werden.
}
catch (ParserConfigurationException pce)
{
pce.printStackTrace();
}
So, jetzt hab ich ein schönes XML als DOM-Baum vorliegen.
Aber irgendwie seh ich jetzt nicht, wie ich das in eine Datei bekomme.
Das Document-Interface enthält ja nichts passendes, und die DocumentBuilder-Klasse enthält nur eine Methode zum Lesen eines Files (parse(java.io.File))
Was genau hab ich übersehen? Vermutlich etwas, was zu offensichtlich ist ...
Noch eine Frage - muß ich die XML-Declaration
<?xml version='1.0' encoding='utf-8'?>
manuell einsetzen? Falls ja: wie?
Oder wird die automatisch erzeugt?
Ich bedanke mich im Voraus für jede Hilfe,
cu
Robert
Hallo,
So, jetzt hab ich ein schönes XML als DOM-Baum vorliegen.
Aber irgendwie seh ich jetzt nicht, wie ich das in eine Datei bekomme.
Was genau hab ich übersehen? Vermutlich etwas, was zu offensichtlich ist ...
Ist nicht wirklich offensichtlich. :-)
Schau dir mal die folgenden Seiten aus dem Java-Almanac an:
http://javaalmanac.com/egs/javax.xml.parsers/pkg.html
http://javaalmanac.com/egs/javax.xml.transform/pkg.html
http://javaalmanac.com/egs/javax.xml.transform.sax/pkg.html
http://javaalmanac.com/egs/org.w3c.dom/pkg.html
http://javaalmanac.com/egs/org.xml.sax/pkg.html
Die Informationen dort sind für das, was du vermutlich vorhast,
zum großen Teil relevant bzw. hilfreich.
Deine konkrete Frage wird im 2. Link beantwortet.
Noch eine Frage - muß ich die XML-Declaration
<?xml version='1.0' encoding='utf-8'?>
manuell einsetzen? Falls ja: wie?
Oder wird die automatisch erzeugt?
Das wird automatisch eingesetzt. Genau wie automatisch jedes notwendige
Encoding durchgeführt wird.
Gruß
Slyh
Hallöle,
Deine konkrete Frage wird im 2. Link beantwortet.
Mit
Source source = new DOMSource(document);
File file = new File("d:/temp/test.rfs");
Result result = new StreamResult(file);
Transformer xformer = TransformerFactory.newInstance().newTransformer();
xformer.transform(source, result);
bekomme ich tatsächlich das gewünschte File (ist wirklich nicht offensichtlich)
<?xml version='1.0' encoding='utf-8'?>
manuell einsetzen? Falls ja: wie?
Das wird automatisch eingesetzt. Genau wie automatisch jedes notwendige
Encoding durchgeführt wird.
Hab ich gesehen.
Vielen Dank!
Slyh
Mein Held des Tages :-)
cu,
Robert