Das separator-Attribut von xsl:value-of
(Auszug aus "XSLT 2.0 & XPath 2.0" von Frank Bongers, Kapitel 1.)
Der andere Umstand, der Ihnen beim eben gezeigten Beispiel aufgefallen sein mag, ist dem Verhalten von xsl:value-of gegenüber Sequenzen zuzuschreiben, nicht der Sequenz selbst.
Es betrifft die Ausgabe im vorherigen Fall: Zwischen den Stringwerten der einzelnen, verarbeiteten Items wird zusätzlich ein Leerzeichen ausgegeben. Das mag zwar naheliegend erscheinen und ist im Grunde auch praktisch. Ebenso logisch wäre es aber, wenn xsl:value-of beide Stringwerte einfach direkt verketten würde: ha haha ha anstelle von ha ha ha ha.
Der Grund besteht darin, dass die Instruktion ein bisher nicht erwähntes Attributs separator besitzt, dessen Default-Wert hier zum Tragen kommt. Das Attribut regelt eben die Zeichenkette, die zwischen den Stringwerten der einzelne Items auszugeben ist. Ist es nicht gesetzt, so wird stillschweigend ein Leerzeichen als Trenner verwendet. Im Grunde steht hier also:
<xsl:value-of select="(lachen, lachen)" separator=" "/>
ergibt: ha ha ha ha
Natürlich kann auch ein anderes Zeichen verwendet werden:
<xsl:value-of select="(lachen, lachen)" separator="+"/>
ergibt: ha ha+ha ha
Oder eine beliebige Kette mehrerer Zeichen:
<xsl:value-of select="(lachen, lachen)" separator=", hoho, "/>
ergibt: ha ha, hoho, ha ha
Ordnet man mit separator="" explizit den leeren String als Trenner an, so werden die Einzelstringwerte unmittelbar verkettet.
Das separator-Attribut von xsl:value-of legt das als Trenner zwischen den Stringwerten der Items einzufügende Zeichen oder eine Zeichenkette fest. Default-Wert ist ein einzelnes Leerzeichen. Nach dem letzten Stringwert wird kein Trenner eingefügt.
<< 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