Kontakt aufnehmen

XPath: Funktionen

Ebenso wie XSLT stellt auch XPath einige Funktionen von sich aus zur Verfügung. Diese können z.B. innerhalb eines Prädikats verwendet werden um den Knoten oder die Knotenmenge besser zu beschreiben. XPath definiert folgende Funktionen:

Funktionen für Knotenmengen

FunktionRückgabewertBeschreibung
last()ZahlGibt den Index des letzten Knotens der Knotenmenge wieder.
position()ZahlGibt den Index des aktuellen Knotens wieder. Der erste Knoten einer Menge hat den Index 1.
count( Knotenmenge )ZahlGibt die Anzahl der Knoten der übergebenen Knotenmenge wieder. Als Parameter muss dazu ein Ausdruck notiert werden der einer Knotenmenge entspricht.
id( Objekt )KnotenmengeGibt die Menge der Elementknoten aus, die ein ID-Attribut mit dem als Parameter übergebenen Wert besitzen. Handelt es sich bei dem Parameter nicht um einen String, so wird das übergebene Objekt in einen String umgewandelt. Mehrere Werte können durch Leerzeichen getrennt werden und bilden Vereinigungen.
local-name( Knotenmenge )StringGibt den lokalen Teil des erweiterten Namens des Parameters wieder. Wird als Parameter ein Knoten ohne erweiterten Namen übergeben, so wird ein leerer String ausgegeben. Wird eine Knotenmenge übergeben, so wird der erweiterte Name des ersten Knotens in Betracht gezogen. Wird kein Parameter übergeben (also nur local-name() ), so wird der aktuelle Knoten in Betracht gezogen.
namespace-uri( Knotenmenge )StringEntspricht local-name() mit dem Unterschied, dass hierbei die Namensraum-URI des erweiterten Namens ausgegeben wird.
name( Knotenmenge )StringEntspricht local-name() mit dem Unterschied, dass hierbei der gesamte Knotenname ausgegeben wird (entspricht dem erweiterten Namen).

Funktionen für Strings

FunktionRückgabewertBeschreibung
string( Objekt )StringKonvertiert das übergebene Objekt in einen String. Bei Knoten wird der Textwert des Knotens ausgegeben, je nach Knotentyp. Bei einer Zahl wird die Zahl als Text ausgegeben. Handelt es sich dabei um eine ungültige Zahl wird NaN ausgegeben, bei positiv unendlichen Zahlen wird Infinity und bei negativ unendlichen Zahlen wird -Infinity ausgegeben. Boolesche Werte werden mit false und true ausgegeben.
concat( String, String, ...)StringLiefert die Verkettung der übergebenen Parameter. Die Funktion erwartet mindestens zwei oder mehr Strings.
starts-with( String, String )BooleanGibt true aus, sofern der zweite String-Parameter im ersten String-Parameter enthalten ist und am Anfang des Strings steht. Ansonsten false. Der Ausdruck starts-with("abcdefgh","abc") gibt true aus - wohingegen starts-with("abcdefgh","bcd") den Wert false ausgibt.
contains( String, String )BooleanGibt true aus, sofern der zweite String-Parameter im ersten String-Parameter enthalten ist (egal an welcher Stelle).
substring-before( String, String)StringGibt den Teil des ersten Strings aus, der sich vor der Position des zweiten Strings befindet. D.h. substring-before("abcdef","cd") gibt "ab" aus. Wird als zweiter Parameter ein leerer String übergeben so ist auch das Resultat ein leerer String.
substring-after( String, String)StringGibt den Teil des ersten Strings aus, der sich nach der Position des zweiten Strings befindet. D.h. substring-after("abcdef","cd") gibt "ef" aus. Wird als zweiter Parameter ein leerer String übergeben so ist das Resultat der erste String-Parameter.
substring(String, Zahl, Zahl)StringGibt den Teil des Strings aus, dessen Anfangsposition mit der ersten Zahl beginnt und die mit der zweiten Zahl definierten Länge besitzt. Wird die zweite Zahl nicht übergeben, wird die Zeichenkette ausgegeben, die bis zum Ende des Strings geht. Die Position des ersten Zeichens eines Strings ist die 1. Der Aufruf substring("abcdef",2,2) gibt "bc" aus.
string-length(String)ZahlGibt die Anzahl der Zeichen des String-Parameters wieder. Wird kein Parameter übergeben, wird die Anzahl der Zeichen des Textwertes des aktuellen Knotens ausgegeben.
normalize-space(String)StringGibt den mit normalisiertem Leerraum gefilterten String aus. D.h. Leerraum am Anfang und Ende werden entfernt und mehrere bei einander stehende Leerräume werden zu einem Leerzeichen zusammen gefaßt. Wurde kein String-Parameter übergeben, so wird der Textwert des aktuellen Knotens verwendet.
translate(String, String, String)StringErsetzt alle Zeichen die im zweiten String angegeben wurden und sich innerhalb des ersten Strings befinden durch die Zeichen des dritten Strings, die eine gleiche Position besitzen und gibt diesen aus. D.h. translate("abcdef","ace","123") gibt den String "1b2d3f" aus. Existiert eine Zeichen-Position des zweiten Strings nicht im dritten String (ist der dritte String also länger als der zweite), so werden diese Zeichen entfernt. D.h. translate("abcdef","abcdef","ABC") gibt nur "ABC" aus.

Funktionen für boolesche Werte

FunktionRückgabewertBeschreibung
boolean(Objekt)BooleanKonvertiert das angegebene Objekt in einen Boolean. Eine Zahl ist immer dann true wenn sie weder 0 noch NaN ist. Ein String ist immer dann true, wenn er nicht leer ist. Eine Knotenmenge ist immer dann true, wenn sie nicht leer ist.
not(Boolean)BooleanGibt den Wert der ungleich dem Parameter ist aus. Also für true wird false ausgegeben und andersherum.
true()BooleanGibt den Wert true aus.
false()BooleanGibt den Wert false aus.
lang(String)BooleanGibt den Wert true aus, wenn es sich bei der Sprache des aktuellen Knotens um die im Parameter angegebene Sprache oder eine Untersprache handelt. Besitzt der aktuelle Knoten z.B. die Sprache "en", so wird bei den Parametern "en" und "en-us" jeweils true ausgegeben, jedoch nicht bei "de".

Funktionen für Zahlen

FunktionRückgabewertBeschreibung
number(Objekt)ZahlKonvertiert ein Objekt in eine Zahl. Strings die mit einer Zahl beginnen werden in diese Zahl konvertiert. Alle anderen Strings werden in NaN konvertiert. Die booleschen Werte true und false werden in 1 und 0 konvertiert. Knotenmengen werden erst durch die Funktion string() in einen String konvertiert und dann entsprechend umgewandelt. Wird kein Objekt übergeben, wird statt dessen der aktuelle Knoten verwendet.
sum(Knotenmenge)ZahlGibt die Summe aller in zahle konvertierten Knoten der übergebenen Knotenmenge.
floor(Zahl)ZahlGibt die größte Zahl aus, die nicht größer als die übergebene Zahl und ganzzahlig ist. (Entspricht dem Abrunden.)
ceiling(Zahl)ZahlGibt die kleinste Zahl aus, die nicht kleiner als die übergebene Zahl und ganzzahlig ist. (Entspricht dem Aufrunden.)
round(Zahl)ZahlGibt die ganze Zahl aus, die am nächsten an der übergebenen Zahl liegt. (Entspricht normalem Runden.) Gibt es zwei solche Zahlen, wird die Zahl ausgegeben, die näher an positiv unendlich liegt.

Du arbeitest in einer Agentur oder als Freelancer?
Dann wirf doch mal einen Blick auf unsere Software FeatValue.

Über uns

Stefan Wienströer

Wir entwickeln Webanwendungen mit viel Leidenschaft. Unser Wissen geben wir dabei gerne weiter. Mehr über a coding project

Cookie-Einstellungen

Helfen Sie dabei, uns noch besser zu machen. Wir nutzen Cookies und ähnliche Technologien, um die Website auf Ihre Bedürfnisse anzupassen. Zur Datenschutzerklärung

Auswahl speichern