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