Das Ziel: Die Sequenz nach Maß
(Auszug aus "XSLT 2.0 & XPath 2.0" von Frank Bongers, Kapitel 1.)
Dieser kurze Exkurs in das Wesen der Sequenzen hilft nun bei der Lösung der gestellten Aufgabe: Es sollen die Inhalte des Anschrift-Containers der Adresse ausgegeben werden, und zwar in der Reihenfolge Straße, Hausnummer, Postleitzahl und Ort. Nach der Hausnummer soll zusätzlich ein Komma, gefolgt von einem Leerzeichen, eingefügt werden.
Da das umgebende Element <anschrift> den aktuellen Kontext darstellt, ergibt sich eine Abfolge mehrerer einfacher XPath-Ausdrücke und eines Literals. Auf diese Weise nämlich wird das Komma realisiert:
<xsl:template match="anschrift">
<xsl:value-of select="(strasse, nr, ',', plz, ort)"/>
</xsl:template>
Um Leerzeichen zwischen den einzelnen Stringwerten zu erhalten, muss dank des Default-Werts des separator-Attributs nichts weiter unternommen werden. Zu beachten ist, dass eben darum das Komma-Literal kein folgendes Leerzeichen enthalten muss. Es wird genauso behandelt wie alle anderen Sequenz-Items auch. Als Begrenzer für das Stringliteral werden hier die einfachen Anführungszeichen eingesetzt, die doppelten dienen außen bereits als Attributbegrenzer.
Die Reihenfolge der Verarbeitung (also auch der Ausgabe) ergibt sich aus der Reihenfolge der Ausdrücke in der Sequenz und ist von der Dokumentreihenfolge vollkommen unabhängig. Das Endergebnis entspricht damit exakt demjenigen der vorher beschriebenen und mit mehreren Instruktionen arbeitenden Methode.
<< zurück | vor >> |
Tipp der data2type-Redaktion: Zum Thema XSLT bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an: |
Copyright © Galileo Press, Bonn 2008
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieses Kapitel aus dem Buch "XSLT 2.0 & XPath 2.0 ― Das umfassende Handbuch" denselben Bestimmungen wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.
Galileo Press, Rheinwerkallee 4, 53227 Bonn