Announcement

Collapse
No announcement yet.

DOM-document in Datei Speichern?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • DOM-document in Datei Speichern?

    Hallo !
    Bin noch nicht sehr bewandert im Xml Processing in Java und habe deshalb mal ne Frage:
    Ich erzeuge per Documentbuilder ein XML-Tree:

    DocumentBuilder xdb = XMLParserUtils.getXMLDocBuilder();
    Document doc = xdb.newDocument();
    Element bookEl = doc.createElement("Test");
    ....usw
    Danache will ich diesen Tree in ein File Saven....Problem dabei ist wie bekomme ich eine Stringrepresentation von diesem Tree??

  • #2
    Hallo Hans, <br><br>
    schreib mir mal ne Mail ich schick dir den Source zu. <br><br>

    Ciao Andreas ( [email protected]

    Comment


    • #3
      So hier der Source, hoffe die Formatierung klappt: <br><br>

      /**<br>
      * Save to disk<br>
      * ---------------<br>
      * Writes a given element via the XMLSerializer into a file ("frrequest.xml").<br>
      */<br>
      public void toDisk(Element element, String fileName) {<br>
      <br>
      OutputFormat oformat = new OutputFormat();<br>
      oformat.setEncoding("ISO-8859-1");<br>
      StringWriter strWriter = new StringWriter();<br>
      <br>
      //serialize the request<br>
      try {<br>
      FileWriter fileWriter = new FileWriter<br>(fileName);
      XMLSerializer serializer = new XMLSerializer( <br>strWriter, oformat );
      serializer.asDOMSerializer();<br>
      serializer.serialize( element );<br>
      fileWriter.write( strWriter.toString() );<br>
      fileWriter.close();<br>
      } catch (IOException ioEx) {<br>
      ioEx.printStackTrace();<br>
      }<br>
      }<br&gt

      Comment


      • #4
        Kommt auf den Parser darauf an.

        Mit Crimson kann man es folgend machen:

        Man castet das Document Objekt (doc) in ein XmlDocument und dann hat man die Funktionen die man für das schrieben in eine Datei braucht.

        <pre>
        XmlDocument xdoc = (XmlDocument) doc;
        xdoc.write(new OutputStreamWriter(System.out));
        </pre>

        hier nehme ich System.out als Output Stream, aber man kann auch jeden anderen X - belibigen Stream nehmen.

        Wenn man aber unabhängig vom Parser sein möchte, dann mach ich es immer
        über eine Transformation bewerkstättigen.

        Man nehme zb. Xalan und
        <pre>
        TransformerFactory transFactory = TransformerFactory.newInstance();
        Transformer transformer = transFactory.newTransformer();

        //Set the source and result
        Source source = new DOMSource(xmlDoc);
        Result result = new StreamResult( out );

        //Copy the Document to std output
        transformer.transform(source, result);
        </pre>

        Das Result Objekt kann man ein SAXResult , DOMResult oder ein StreamResult zuweisen. Und schon haben wir das Problem gelößt.

        Gruß Dietma

        Comment

        Working...
        X