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, Post­leitzahl 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 Lite­rals. 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 wer­den. Zu beachten ist, dass eben darum das Komma-Literal kein folgendes Leer­zeichen 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 Attribut­begrenzer.

Die Reihenfolge der Verarbeitung (also auch der Ausgabe) ergibt sich aus der Reihenfolge der Ausdrücke in der Sequenz und ist von der Dokumentreihen­folge 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