Leichter Einstieg in XSLT
Zuallererst muss man die Unterschiede zwischen XSLT, welches für XSL-Transformation steht und XSL, welches für Extensible Stylesheet Language steht festhalten. Demnach kann man festhalten das XSL das visuelle Erscheinungsbild einer XML-Datei formatiert, während man mit XSLT die Struktur einer XML Datei formatieren kann. Zur Anmerkung: Mit XML-Schema können wir die Struktur unserer XML-Datei festlegen.
Wie funktioniert das nun?
Als Ausgangslage benutzen wir wieder unsere XML-Datei die wir für den Online-Sandwich-Laden erstellt haben. Wir haben nun also mehrere Sandwiches schon erstellt und diese werden den Besuchern mit all ihren Zutaten angezeigt. Gehen wir mal davon aus das Besucher aus England es verpönen, Käse auf ihrem Sandwich zu haben, dann können wir nun mit XSLT jegliche “Käse”-Elemente vor der Ausgabe entfernen, ohne am Datensatz was zu ändern (in der Datenbank bleiben die Sandwiches mit Käse unverändert).
Was also für alle anderen Besucher so ausgegeben wird:
<sandwich>
<brot>
<kaese></kaese>
<gurken></gurken>
<mayonaise></mayonaise>
</brot>
</sandwich>
Wird für Besucher aus England so ausgegeben:
<sandwich>
<brot>
<gurken></gurken>
<mayonaise></mayonaise>
</brot>
</sandwich>
Unsere XSLT-Datei müsste, um obiges Beispiel auszuführen, folgenden Code enthalten:
<xsl:if element name="Käse">
</xsl:if>
Dieser Pseudo-Quellcode sucht nach XML-Tags mit dem Namen “Käse” und kommentiert sie aus, dadurch werden sie nicht mehr angezeigt.
Ein anderes Beispiel wäre nun folgendes: Man hat die XML-Elemente in der Datenbank gespeichert und möchte sie nun grafisch ausgeben, zum Beispiel soll uns nicht Text angezeigt werden, sondern die richtigen Bilder für den Käse, für das Brot und für alle anderen Zutaten, so daß wir uns das Sandwich bildlich vorstellen können.
Meist nutzt man XSLT allerdings um eine XML-Datei in ein anderes Format umzuwandeln, zum Beispiel in eine XHtml-Datei mit CSS oder ein PDF oder oder oder…
Verwandte Artikel
- Leichter Einstieg in XML
- Leichter Einstieg in XML-Schema
- Das Website-Rauschen
- Was sind Permalinks und Trackbacks
- Css - boxenorientiertes Denken
3 Kommentare
Tut mir leid, die Kommentarfunktion für diesen Beitrag ist geschlossen.

Hi,
also, diese Unterscheidung finde ich reichlich akademisch. Davon mal abgesehen hat weder xsl noch xstl per se Irgendwas mit “visueller” Formatierung zu tun. Mit xsl kann man schlich eine xml-Datei in eine andere xml-Datei überführen. Dabei kann das Resultat vom gleichen xml-Typ sein wie die Eingangsdatei (mit zusätzlichen oder mit weniger Einträgen), oder auch ein ganz anderer xml-Typ, wie z.B. xhtml. Notfalls kann man per xsl aber auch html oder plain text erzeugen.
Wenn man übrigens einfach nur einen Datensatz weglassen will, geht’s auch einfacher. Man braucht dazu zwei templates. Das Erste ist ein Standardtemplate, das man immer gebrauchen kann, und das pustet einfach Alles so raus, wie es reinkommt:
Das Zweite ist dann ein leeres Template für die Datensätze, die man weglassen will. Also, wenn man Käse weglassen will:
Das Haupttemplate sieht dann so aus:
Man spart sich die if-Abfragen. Das Haupttemplate sowie die identity-copy braucht man sowieso immer, und den Einzeiler für den wegzulassenden Datensatz hat man schnell geschrieben.
Oops, sorry, da hat mir Dein Script wohl das xml-Markup wegrationalisiert. Ich probier’s mal mit den entities:
<xml:template match=”/”>
<xsl:apply-templates/>
<xsl:template>
<xsl:template match=”Käse”/>
<!– The identity copy –>
<xsl:template match=”node()|@*”>
<xsl:copy>
<xsl:apply-templates select=”@*|node()”/>
</xsl:copy>
</xsl:template>
Da kennt sich wohl einer deutlich besser mit XML aus als ich :)