Testen, ob ein String mit einem anderen String endet
(Auszug aus "XSLT Kochbuch" von Sal Mangano)
Problem
Sie müssen testen, ob ein String mit einem bestimmten Teilstring endet.
Lösung
XSLT 1.0
substring($value, (string-length($value) - string-length($substr)) + 1) = $substr
XSLT 2.0
ends-with($value, $substr)
Diskussion
XSLT 1.0 enthält die native Funktion starts-with(), aber keine ends-with()-Funktion. Dieser Mangel wurde in 2.0 behoben. Wie jedoch der 1.0-Code zeigt, kann ends-with() leicht mit den Möglichkeiten von substring() und string-length() implementiert werden. Der Code extrahiert einfach die letzten string-length($substr)-Zeichen aus dem Zielstring und vergleicht sie mit dem Teilstring.
Achtung!
Programmierer, die daran gewöhnt sind, dass die erste Position in einem String mit dem Index 0 bezeichnet wird, müssen beachten, dass XSLT-Strings beim Index 1 beginnen.
<< zurück | vor >> |
Tipp der data2type-Redaktion: Zum Thema XSLT bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an: |
Copyright © 2006 O'Reilly Verlag GmbH & Co. KG
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieses Kapitel aus dem Buch "XSLT Kochbuch" 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.
O'Reilly Verlag GmbH & Co. KG, Balthasarstraße 81, 50670 Köln, kommentar(at)oreilly.de