XPath-Standardfunktionen
Der Publisher unterstützt die folgenden XPath-Standardfunktionen. Daneben gibt es die Publisher-spezifischen Layoutfunktionen und selbstdefinierte Funktionen.
Zeichenketten
concat(<Wert>,<Wert>, ...)- Erzeugt einen neuen Text aus der Verkettung der Werte.
contains(<Heuhaufen>,<Nadel>)- Wahr, wenn
HeuhaufendieNadelenthält. Beispiel:contains('bana','na')ergibttrue(). starts-with(<String>, <String>)- Wahr, wenn die erste Zeichenkette mit der zweiten anfängt.
ends-with(<String>, <String>)- Wahr, wenn die erste Zeichenkette mit der zweiten endet.
substring(<Eingabe>,<Start>[,<Länge>])- Gibt einen Teil der Zeichenkette zurück.
substring('Goldfarb', 5, 3)gibtfarzurück.Startkann auch negativ sein (zählt vom Ende). substring-before(<String>,<String>)- Gibt den Teil der ersten Zeichenkette zurück, der vor der zweiten steht. Beispiel:
substring-before("tattoo", "attoo")ergibt"t". substring-after(<String>,<String>)- Gibt den Teil der ersten Zeichenkette zurück, der nach der zweiten steht. Beispiel:
substring-after("tattoo", "tat")ergibt"too". string-length(<String>)- Gibt die Länge der Zeichenkette zurück. Multibyte-UTF-8-Sequenzen werden als eine Position gezählt.
string-join(<Sequenz>, <Separator>)- Verbindet die Elemente der Sequenz mit dem Separator.
normalize-space(<Text>)- Entfernt führende und nachstehende Leerzeichen. Mehrfache Leerzeichen und Zeilenumbrüche werden durch ein einzelnes Leerzeichen ersetzt.
upper-case(<Text>)- Wandelt den Text in Großbuchstaben.
upper-case('Text')ergibtTEXT. lower-case(<Text>)- Wandelt den Text in Kleinbuchstaben.
lower-case('Text')ergibttext. translate(<Eingabe>,<Von>,<Nach>)- Ersetzt alle Zeichen in
Eingabe, die inVonvorkommen, durch das entsprechende Zeichen inNach. Beispiel:translate('banana','an','uo')ergibtbuouou. WennNachkürzer alsVonist, werden überzählige Zeichen gelöscht. matches(<Text>,<Regexp>[,<Flags>])- Prüft, ob der Text auf den regulären Ausdruck passt. Flags:
s,i,m(siehe XPath-Spezifikation). Beispiel:matches("banana", "^(.a)+$")ergibt wahr. replace(<Eingabe>,<Regexp>,<Ersetzung>)- Ersetzt alle Treffer des regulären Ausdrucks durch den Ersetzungstext. Beispiel:
replace('banana', 'a', 'o')ergibtbonono. Mit Gruppen:replace('W151TBH','^[A-Z]([0-9]+)[A-Z]+$', '$1')ergibt151. tokenize(<Eingabe>,<Regexp>)- Zerlegt die Eingabe anhand des regulären Ausdrucks in eine Sequenz von Zeichenketten. Beispiel:
tokenize("Go home, Jack!", "\W+")ergibt die Sequenz"Go", "home", "Jack", "". string(<Sequenz>)- Gibt den Textwert der Sequenz zurück.
codepoints-to-string(<Codepoints>)- Konvertiert eine Sequenz von Codepoints in eine Zeichenkette.
string-to-codepoints(<String>)- Konvertiert eine Zeichenkette in eine Sequenz von Codepoints.
Zahlen
number(<Wert>)- Konvertiert den Wert in eine Zahl. Falls nicht möglich, wird NaN zurückgegeben.
abs(<Zahl>)- Gibt den Absolutwert zurück.
abs(-1.34)ergibt1.34. ceiling(<Zahl>)- Rundet auf die nächsthöhere Ganzzahl.
ceiling(1.34)ergibt2. floor(<Zahl>)- Rundet auf die nächstniedrigere Ganzzahl.
floor(1.7)ergibt1. round(<Zahl>[,<Nachkommastellen>])- Rundet auf die angegebene Anzahl Nachkommastellen (Voreinstellung: 0).
round-half-to-even(<Zahl>[,<Nachkommastellen>])- Rundet kaufmännisch (Banker’s Rounding): bei .5 wird auf die nächste gerade Zahl gerundet.
format-number(<Zahl>, <Muster>)- Formatiert die Zahl nach dem Muster. Beispiel:
format-number(12345.67, '#,##0.00')ergibt12,345.67. max(<Werte>)- Gibt das Maximum zurück.
max(1.1, 2.2, 3.3)ergibt3.3. min(<Werte>)- Gibt das Minimum zurück.
min(1.1, 2.2, 3.3)ergibt1.1.
Boolesche Funktionen
true()- Gibt wahr zurück.
false()- Gibt falsch zurück.
not(<Wert>)- Negiert den Wahrheitswert.
not(true())ergibtfalse(). boolean(<Sequenz>)- Gibt den effektiven Booleschen Wert zurück.
empty(<Sequenz>)- Wahr, wenn die Sequenz leer ist (z.B. ein nicht vorhandenes Attribut oder Element).
Sequenzen und Knoten
count(<Knoten>)- Zählt die Kindelemente mit dem angegebenen Namen. Beispiel:
count(article). position()- Gibt die Position des aktuellen Datensatzes zurück.
last()- Gibt die Anzahl der gleichnamigen Geschwister-Elemente zurück.
distinct-values(<Sequenz>)- Gibt die eindeutigen Werte zurück.
distinct-values((1,2,2,3))ergibt(1,2,3). reverse(<Sequenz>)- Kehrt die Reihenfolge der Sequenz um.
local-name()- Gibt den Namen des aktuellen Knotens zurück (ohne Namensraum).
name()- Gibt den Namen des aktuellen Knotens zurück (mit Namensraum-Präfix).
namespace-uri([<Knotensequenz>])- Gibt den Namensraum-URI des ersten Knotens zurück.
root(<Element>)- Gibt das Wurzelelement zurück.
doc(<Dateiname>)- Öffnet die Datei und gibt den Inhalt als XML-Baum zurück.
unparsed-text(<Dateiname>)- Gibt den Inhalt der Datei als uninterpretierten Text zurück.
concat ist unter Zeichenketten aufgeführt.
