fn:string-length

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

Rückgabewert: Eine Ganzahl vom Typ xs:integer; die Anzahl der Zeichen in einem übergebenen String.

Aufruf/Argumente:

fn:string-length($eingabewert?)

$eingabewert:
Optional. Bei dem Argument handelt es sich um einen String xs:string, dessen Zeichenzahl ermittelt werden soll. Handelt es sich bei dem Argument nicht um einen String, so wird ein Typfehler gemeldet. Die leere Sequenz ist als Wert erlaubt und wird wie der leere String behandelt (die Funktion gibt 0 zurück).

Wird kein Argument übergeben, so wird die Zeichenzahl des Stringwerts des Kontextitems ermittelt. Dessen Wert wird, falls es sich nicht um einen String handelt, nach den Regeln der Umwandlungsfunktion fn:string() in einen String verwandelt.

Verwendungszweck:

Die Funktion fn:string-length() zählt die Anzahl der Zeichen eines ihr übergebenen Strings. Falls kein Argument überge­ben wird, gibt sie die Zeichenzahl des gerade gültigen Kontextitems zurück:

fn:string-length() entspricht fn:string-length(.)

Ist das Kontextitem zu diesem Augenblick undefiniert, so wird ein Laufzeitfehler gemeldet (err:XPDY0002).

Sowohl für einen leeren String als auch eine leere Sequenz als Eingabewert gibt die Funktion den Wert 0 zurück – beides lässt sich daher nicht unterscheiden.

Alle Zeichen werden nach den üblichen XML-Regeln betrachtet, d.h. auch Zei­chen, die aus einem sogenannten Unicode Surrogate Pair bestehen – also einem Pärchen von 16Bit-Werten –, werden als ein einzelnes Zeichen gezählt.

Zu beachten ist, dass Entitäten vom XML-Parser ersetzt bzw. expandiert werden, bevor der XSLT-Prozessor die fn:string-length()-Funktion anwendet. Zei­chen, die im Dokumentquelltext durch Character Entities wie E oder XML-Entity-Referenzen wie & vertreten sind, werden daher als einzelnes Zei­chen gezählt. Dies gilt analog für selbst definierte Ersetzungstextentitäten. Bei diesen werden die Zeichen des Expansionstextes gezählt.

Beispiele:

Funktionsaufruf Ergebnis

fn:string-length('abc')

3

fn:string-length('')

0

fn:string-length(())

0

fn:string-length('&>')

2

fn:string-length("Das ist ein Beispiel")

20

fn:string-length(@beispiel)

0, falls das Attribut nicht existiert,
sonst Zeichenzahl des @-Wertes

Tabelle: Funktionsaufruf von fn:string-length.

Funktionsdefinition:

XPath 1.0:

string-length(string?) => number

XPath 2.0:

fn:string-length() as xs:integer

fn:string-length($arg as xs:string?) as xs:integer

   

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