18. Mai 2012  
  Suche:
 
  Basics
  Code-Galerie
  Forum
  FAQ
  Tipps & Tricks
  Literatur
  Knowledge Base
  Workshops
  JSP-Hosting
  JSP-Engines
  Jobbörse
  Links
  JSP-Sites
  Newsletter
  JSP-Test
  Impressum
  Username:
  
  Passwort:
  
  

  Jetzt registrieren
  Warum registrieren?

  Valid HTML 4.01!
  Valid CSS!

JSP - Workshop - XML mit JDOM - Step 4/4

Im letzten Schritt führen wir eine XSLT-Transformation über unsere XML-Datei durch.
// Das uebliche Einlesen
SAXBuilder builder = new SAXBuilder(false);
Document doc = builder.build(new FileInputStream(getServletContext().getRealPath("/path/to/test.xml")));

// XSL-Transformer mit Stylesheet initzialisieren
XSLTransformer transformer = new XSLTransformer(getServletContext().getRealPath("/path/to/test.xsl"));

// Transformierung durchfuehren
Document docTrans = transformer.transform(doc);

// Und wir geben uns das Ergebnis aus
Format format = Format.getPrettyFormat();
format.setEncoding("iso-8859-1");

XMLOutputter xmlOut = new XMLOutputter(format);
xmlOut.setFormat(format);

xmlOut.output(docTrans, out);

Unser XSLT transformiert die XML-Datei in ein HTML-Fragment:
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

  <xsl:template match="books">
    <table border="1">
      <tr>
        <td><b>id</b></td>
        <td><b>Titel</b></td>
        <td><b>Autor</b></td>
      </tr>
      <xsl:apply-templates/>
    </table>
  </xsl:template>

  <xsl:template match="book">
    <tr> 
      <td><xsl:value-of select="@id"/></td>
      <xsl:apply-templates/>
    </tr>
  </xsl:template>

  <xsl:template match="author">
    <td><xsl:value-of select="text()"/></td>
  </xsl:template>

  <xsl:template match="title">
    <td><xsl:value-of select="text()"/></td>
  </xsl:template>

</xsl:stylesheet>

So sieht der Output aus:
<table border="1">
  <tr>
    <td><b>id</b></td>
    <td><b>Titel</b></td>
    <td><b>Autor</b></td>
  </tr>
  <tr>
    <td>1</td>
    <td>Java 2 Enterprise Edition</td>
    <td>Mark Wuttka</td>
  </tr>
  <tr>
    <td>2</td>
    <td>JavaServer Pages and Servlets</td>
    <td>Mark Wuttka</td>
  </tr>
</table>

und so wenn wir es uns im Browser anschauen:

id Titel Autor
1 Java 2 Enterprise Edition Mark Wuttka
2 JavaServer Pages and Servlets Mark Wuttka

Und hier noch ein paar weiterführende Links:
XSLT-Rferenz von zvon.org (en)
W3C Recommendations (en)
userGroup: Einführung in XML/XSLT (de)
iX 1/2001, S.167:XML-Programmierung (de)


So, zum Schluss wollen wir jetzt noch wissen wie Ihnen dieser Workshop gefallen hat:
schlecht sehr gut
Ihr Kommentar (freiwillig):

Kommentare
(13.08.2004) Echt ein Top Tutorial.
Hatte nur ein Problem beim Schreiben der test.xml und habe das so gelöst:

FileOutputStream fos = new FileOutputStream(getServletConfig().getServletContext().getRealPath("/path/to/test.xml"));
xmlOut.output(doc,fos );
fos.close();

(07.09.2004) Vielen Dank für diesen Workshop. So eine ähnliche Aufgabe muss ich von der Uni aus machen. Ihr habt mir echt weiter geholfen und mir sehr gute Anhaltspunkte gegeben. Macht weiter so!!!
Maja

(27.09.2004) Klasse Workshop, eine kleines Bspl. zum hinzufügen eines Knoten oder den Inhalt in ein bestehendes xml-Dokument wäre toll.
Ingo

(20.10.2004) bravo!

(08.03.2005) schöne Beispiele für den Einstieg,

interessant wäre noch die Transformation nach PDF !?!

(17.03.2005) jo ist n1 jedoch nicht sehr detailliert und oberflächig...

(23.03.2005) Schöner Überblick, kurz und gut.

(25.03.2005) Da es sehr aktuell ist JDOM 1.0 sehr Geil. Sehr verständlich formuliert, weiter so, und vor allem vielen Dank.

(10.05.2005) und weiter so

(14.09.2005) perfekt!!!
genau das, wonach ich gesucht habe!
danke!

(18.09.2005) eine (eigentlich) simple thematik simpel erklärt. sehr gut.

(08.12.2005) Ich habe zig Seiten durchsucht um eine vernünftige Anleitung zu finden, als ich hier gelandet bin hab ich alles auf anhieb verstanden, die war auf den anderen Seiten nicht der Fall. Besten Dank!

(10.05.2006) Hat mir gut gefallen. Sehr gut kommentiert.
Rainer

(16.06.2006) Die Beispiele sind wirklich gut. Nur leider kann ich nirgends finden welches Package ich einbinden muss. Daher läuft es bei mir leider nicht. Kann mir jemand sagen was für ein Package ich dazu einbinden muss und wie die Syntax dafür lautet. Vielen Dank schonmal. Gruss Clafa





zurück zu den Workshops




Hinweis: Auf dieser Seite liegen Links zu anderen Seiten im Internet. Für alle diese Links gilt: Wir betonen ausdrücklich, daß wir keinerlei Einfluß auf die Gestaltung und die Inhalte der gelinkten Seiten haben. Deshalb distanzieren wir uns hiermit ausdrücklich von allen Inhalten aller gelinkten Seiten auf dieser Homepage und machen uns ihre Inhalte nicht zueigen. Diese Erklärung gilt für alle auf unserer Homepage angebrachten Links

Redaktion/Betreiber von JSP-Develop übernehmen keinerlei Gewährleistung und Verantwortung für die Richtig- und/oder Vollständigkeit von den auf den Webseiten JSP-Develop veröffentlichten Source Codes. Die Verantwortung der Verwendung/Anwendung sowie etwaige Modifikation der hier veröffentlichten Sourcen obliegt einzig dem Benutzer der Webseite, welche die veröffentlichten Sourcen in einer Applikation/Anwendung einsetzt. Durch das Kopieren und/oder Benutzen der Sourcen in einer Applikation/Anwendung bzw. etwaigen Abschriften wird dieser Rechtshinweis anerkannt.

Java, JSP, JavaServer Pages, J2EE, EJB, JDBC, JNDI, JTA, Sun, Sun Microsystems are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and in other countries. IBM, WebSphere are trademarks or registered trademarks of International Business Machines Corporation. Other trademarks and registered trademarks are the property of their respective owners.