Robert: XML DOM-Baum in Datei speichern

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

  1. 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

    1. 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