Fraenk: XML/XSL parsen und Ausgabe mit JSP

Hallo zusammen,

ich habe eine xml- und eine xsl-Datei. Die beiden parse ich mit javax.xml.transformer.Transform zu einer *.html-Datei. Klappt wunderbar:

...
trans.transform(new StreamSource("party.xml"), new StreamResult("party.html"))
...

Aber eigentlich möchte ich keine HTML-Datei erzeugen, sondern beim Aufruf eines Servlets xyz.jsp das Ergebnis der Transformation an den Browser als Ausgbabe zurücksenden.

Hat jemand einen Tipp oder einen Hinweis, womit ich mich befassen muss???

Danke und guten Abend
Fraenk

  1. Hallo,

    eins vorweg:
    Ich habe nie was mit den Klassen aus den javax.xml.transform.*-Packages
    gemacht. Da die Klassen stellenweise außerdem ziemlich miserabel
    dokumentiert sind, könnte ich auch völlig daneben liegen. :-)

    ...
    trans.transform(new StreamSource("party.xml"), new StreamResult("party.html"))
    ...

    Aber eigentlich möchte ich keine HTML-Datei erzeugen, sondern beim Aufruf eines Servlets xyz.jsp das Ergebnis der Transformation an den Browser als Ausgbabe zurücksenden.

    Wenn ich das richtig sehe, dann kann StreamResult auch einen OutputStream
    entgegen nehmen. Ein ByteArrayOutputStream ist ein OutputStream. Wenn
    du diesen als Parameter übergibst, dann werden die Ausgaben von
    transform(...) in diesen ByteArryOutputStream geschrieben, der die
    Daten wiederum in ein byte-Array schreibt, das du später über die
    Methode  ByteArrayOutputStream.toByteArray() auslesen kannst. Das
    könntest du dann an den Browser liefern.

    StreamResult könnte aber auch einen Writer nehmen. Hier könntest du
    einen StringWriter verwenden. Der speichert die Daten dann in einen
    StringBuffer. Den Inhalt davon kannst du dir dann über die Methode
    StringWriter.toString() holen.

    Wegen der nicht wirklich verständlichen Doku der StreamResult-Klasse,
    kann ich keine konkrete Aussage darüber machen, ob du dem Konstruktor
    besser einen OutputStream oder einen Writer mitgibst. Ich würd's mal
    mit einem Writer (also dem StringWriter) probieren.
    Ansonsten solltest du diesbezüglich mal die Doku eines Drittanbieters
    (sprich: ein Javabuch, http://www.javaalmanac.com oder eine vergleichbare
    Resource) konsultieren oder in die Sourcen von StreamResult schauen.

    Gruß
    Slyh

    1. Hallo Slyh,

      höhrt sich ganz gut an! Werd dss mal heute Abend ausprobieren!

      Danke!
      Frank