fn:ends-with

(Auszug aus "XSLT 2.0 & XPath 2.0" von Frank Bongers, Kapitel 5.)

A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

   

Kategorie: Stringfunktionen – Analyse

Herkunft: XPath 2.0

Rückgabewert: Ein Boolescher Wert true oder false, je nachdem, ob ein übergebener String mit einem ebenfalls übergebenen Vergleichsstring endet oder nicht

Aufruf/Argumente:

fn:ends-with($teststring?, $vergleichsstring?, $collation-URI?)

$teststring:
Optional. Ein Eingabewert vom Typ String xs:string, der überprüft werden soll, ob er mit dem als zweites Argument übergebenen Ver­gleichsstring endet. Handelt es sich bei dem Argument nicht um einen String, so wird ein Typfehler gemeldet. Die leere Sequenz ist als Wert zugelassen und wird wie der leere String behandelt.

$vergleichsstring:
Optional. Der String xs:string, auf dessen Vorkommen am Ende des Teststrings des ersten Arguments getestet wird. Handelt es sich bei dem Argument nicht um einen String, so wird ein Typfehler gemeldet. Die leere Sequenz ist als Wert zugelassen und wird wie der leere String behandelt.

$collation-URI:
Optional. Das dritte Argument besteht aus einem String xs:string, der den URI-String der anzuwendenden Collation benennt. Der Wert muss lexikalisch dem Typ xs:anyURI entsprechen. Ist dies nicht der Fall, wird eine Fehlermeldung ausgegeben (»Invalid collationURI«). Wird kein drit­tes Argument übergeben, so wird für den Vergleich die Unicode Codepoint Collation herangezogen.

Verwendungszweck:

Der Rückgabewert von fn:ends-with() ist true, wenn der überprüfte String mit dem Vergleichsstring endet oder mit ihm iden­tisch ist. Komplizierter ausgedrückt: Der getestete String muss mit einer zusam­menhängenden Folge von Zeichen enden, deren Unicode-Werte (anhand der verwendeten Collation) den korres­pondierenden Zeichen im Vergleichsstring entsprechen. In allen anderen Fällen ist der Rückgabewert der Funktion false.

Im einfachsten Fall werden unmittelbar zwei Strings übergeben:

fn:ends-with("abc","c") ergibt true.

Sonderfälle und Anmerkungen:

Wird als Vergleichsstring der leere String oder – gleichwertig – die leere Sequenz übergeben, so ist der Rückgabewert stets true. Ist dagegen der getestete String selbst leer oder wird als erstes Argument die leere Sequenz übergeben, so ist der Rückgabewert stets false, es sei denn, der Vergleichsstring wäre gleichfalls ein leerer String.

Es ist möglich, mit Hilfe des optionalen dritten Funktionsarguments eine vor­definierte Vergleichsliste (Collation) für den Stringvergleich hinzuzuziehen – beispielsweise um »Fluß« und »Fluss«, »Jäger« und »Jaeger« als sinngemäß identisch erkennen zu können. Die Art und Weise, wie die Collation eingebun­den wird, ist implementationsabhängig. Der String, der die Verknüpfung zur Collation herstellt, muss lexikalisch dem Typ xs:anyURI entsprechen, wird aber als xs:string übergeben.

Wird kein entsprechendes drittes Argument übergeben, so findet der String­vergleich anhand der Unicode Codepoint Collation statt. Es wird also ausdrück­lich nicht die Default-Collation des Systems herangezogen! Das Verhalten von fn:ends-with() geht damit konform mit denjenigen Stringfunktionen, die reguläre Ausdrücke verwenden, wie fn:matches(), fn:replace() und fn:tokenize().

Beispiele:

Beispiel 1 – Vergleich zweier Strings:

fn:ends-with("Butterblume","blume") ergibt true.

Beispiel 2 – Vergleich mit dem leeren String:

fn:ends-with("", "blume") ergibt false.

Beispiel 3 – Vergleich mit der leeren Sequenz:

fn:ends-with((), "blume") ergibt false.

Beispiel 4 – Vergleich mit dem leeren String:

fn:ends-with("Butterblume", "") ergibt true.

Beispiel 5 – Vergleich zweier leerer Strings:

fn:ends-with((), "") ergibt true.

Funktionsdefinition:

XPath 1.0:

Funktion nicht verfügbar

XPath 2.0:

fn:ends-with($arg1 as xs:string?,
             $arg2 as xs:string?) as xs:boolean

fn:ends-with($arg1 as xs:string?, 
             $arg2 as xs:string?, 
             $collationLiteral as xs:string) as xs:boolean

   

<< 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