XML/XSL parsen und Ausgabe mit JSP
Fraenk
- java
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
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
Hallo Slyh,
höhrt sich ganz gut an! Werd dss mal heute Abend ausprobieren!
Danke!
Frank