CodeW3C.com-Taschenbuch
- Vorherige Seite XSLT Elemente
- Nächste Seite XML-Tutorial
XSLT 2.0、XPath 2.0 和 XQuery 1.0 共享相同的函数库。
函数参考手册
函数命名空间的默认前缀是:fn:
函数命名空间的 URI 为:http://www.w3.org/2005/xpath-functions
提示:通常使用 fn:
前缀来调用函数,例如 fn:string()
。不过,由于 fn:
是命名空间的默认前缀,因此调用时函数名不需要添加前缀。
存取函数
Name | Beschreibung |
---|---|
fn:node-name(node) | 返回参数节点的节点名称。 |
fn:nilled(node) | 返回是否拒绝参数节点的布尔值。 |
fn:data(item.item,...) | 接受项目序列,并返回原子值序列。 |
|
返回当前节点或指定节点的 base-uri 属性的值。 |
fn:document-uri(node) | 返回指定节点的 document-uri 属性的值。 |
错误和跟踪函数
Name | Beschreibung |
---|---|
|
例子:error(fn:QName('http://example.com/test', 'err:toohigh'), 'Error: Price is too high') 结果:向外部处理环境返回 http://example.com/test#toohigh 以及字符串 "Error: Price is too high"。 |
fn:trace(value,label) | 用于对查询进行 debug。 |
有关数值的函数
Name | Beschreibung |
---|---|
fn:number(arg) |
返回参数的数值。参数可以是布尔值、字符串或节点集。 Beispiel: number('100') Ergebnis: 100 |
fn:abs(num) |
Gibt den Absolutwert des Arguments zurück. Beispiel: abs(3.14) Ergebnis: 3.14 Beispiel: abs(-3.14) Ergebnis: 3.14 |
fn:ceiling(num) |
Gibt das kleinste Ganze zurück, das größer als der Parameter num ist. Beispiel: ceiling(3.14) Ergebnis: 4 |
fn:floor(num) |
Gibt das größte Ganze zurück, das nicht größer als der Parameter num ist. Beispiel: floor(3.14) Ergebnis: 3 |
fn:round(num) |
Rundet den Parameter num auf den nächstgelegenen Ganzen an. Beispiel: round(3.14) Ergebnis: 3 |
fn:round-half-to-even() |
Beispiel: round-half-to-even(0.5) Ergebnis: 0 Beispiel: round-half-to-even(1.5) Ergebnis: 2 Beispiel: round-half-to-even(2.5) Ergebnis: 2 |
Über die Stringfunktionen
Name | Beschreibung |
---|---|
fn:string(arg) |
Gibt den Stringwert des Arguments zurück. Das Argument kann eine Zahl, ein logisches Wert oder ein Knotenset sein. Beispiel: string(314) Ergebnis: "314" |
fn:codepoints-to-string(int,int,...) |
Laut Zeichensatzpunktreihe wird eine Zeichenfolge zurückgegeben. Beispiel: codepoints-to-string(84, 104, 233, 114, 232, 115, 101) Ergebnis: 'Thérèse' |
fn:string-to-codepoints(string) |
Laut Zeichenfolge wird eine Zeichensatzpunktreihe zurückgegeben. Beispiel: string-to-codepoints("Thérèse") Ergebnis: 84, 104, 233, 114, 232, 115, 101 |
fn:codepoint-equal(comp1,comp2) | Laut Unicode-Zeichenpunktkollation wird true zurückgegeben, wenn der Wert von comp1 dem Wert von comp2 entspricht (http://www.w3.org/2005/02/xpath-functions/collation/codepoint),否则 wird false zurückgegeben. |
|
Wenn comp1 kleiner als comp2 ist, wird -1 zurückgegeben. Wenn comp1 gleich comp2 ist, wird 0 zurückgegeben. Wenn comp1 größer als comp2 ist, wird 1 zurückgegeben (entsprechend den verwendeten Vergleichsregeln). Beispiel: compare('ghi', 'ghi') Ergebnis: 0 |
fn:concat(string,string,...) |
Gibt die Verknüpfung von Zeichenketten zurück. Beispiel: concat('XPath ','is ','FUN!') Ergebnis: 'XPath is FUN!' |
fn:string-join((string,string,...),sep) |
Verwendet den sep-Parameter als Trennzeichen, um eine durch die string-Parameter verknüpfte Zeichenkette zurückzugeben. Beispiel: string-join(('We', 'are', 'having', 'fun!'), ' ') Ergebnis: ' We are having fun! ' Beispiel: string-join(('We', 'are', 'having', 'fun!')) Ergebnis: 'Wearehavingfun!' Beispiel: string-join((), 'sep') Ergebnis: '' |
|
Gibt einen vom start-Position beginnenden und eine angegebene Länge betreffenden Teilstring zurück. Der Index des ersten Zeichens ist 1. Wenn der Parameter len weggelassen wird, wird ein Teilstring von der Position start bis zum Ende des Strings zurückgegeben. Beispiel: substring('Beatles',1,4) Ergebnis: 'Beat' Beispiel: substring('Beatles',2) Ergebnis: 'eatles' |
|
Gibt die Länge eines angegebenen Strings zurück. Ohne string-Parameter wird die Länge des String-Werts des aktuellen Knotens zurückgegeben. Beispiel: string-length('Beatles') Ergebnis: 7 |
|
Entfernt die Leerzeichen am Anfang und Ende eines angegebenen Strings und ersetzt alle internen Leerzeichenfolgen durch ein Leerzeichen, und gibt das Ergebnis zurück. Ohne string-Parameter wird der aktuelle Knoten bearbeitet. Beispiel: normalize-space(' The XML ') Ergebnis: 'The XML' |
fn:normalize-unicode() | Führt die Unicode-Normalisierung durch. |
fn:upper-case(string) |
Konvertiert den String-Parameter in Großbuchstaben. Beispiel: upper-case('The XML') Ergebnis: 'THE XML' |
fn:lower-case(string) |
Konvertiere den string-Parameter in Kleinbuchstaben. Beispiel: lower-case('The XML') Ergebnis: 'the xml' |
fn:translate(string1,string2,string3) |
Ersetze string2 in string1 durch string3. Beispiel: translate('12:30','30','45') Ergebnis: '12:45' Beispiel: translate('12:30','03','54') Ergebnis: '12:45' Beispiel: translate('12:30','0123','abcd') Ergebnis: 'bc:da' |
fn:escape-uri(stringURI,esc-res) |
Beispiel: escape-uri("http://example.com/test#car", true()) Ergebnis: "http%3A%2F%2Fexample.com%2Ftest#car" Beispiel: escape-uri("http://example.com/test#car", false()) Ergebnis: "http://example.com/test#car" Beispiel: escape-uri ("http://example.com/~bébé", false()) Ergebnis: "http://example.com/~b%C3%A9b%C3%A9" |
fn:contains(string1,string2) |
Gibt true zurück, wenn string1 string2 enthält, sonst false. Beispiel: contains('XML','XM') Ergebnis: true |
fn:starts-with(string1,string2) |
Gibt true zurück, wenn string1 mit string2 beginnt, sonst false. Beispiel: starts-with('XML','X') Ergebnis: true |
fn:ends-with(string1,string2) |
Gibt true zurück, wenn string1 mit string2 endet, sonst false. Beispiel: ends-with('XML','X') Ergebnis: false |
fn:substring-before(string1,string2) |
Rückgabe des Unterstrings, der vor dem Erscheinen von string2 in string1 liegt. Beispiel: substring-before('12/10','/') Ergebnis: '12' |
fn:substring-after(string1,string2) |
Gibt den Teil der Zeichenkette string2 zurück, der nach dem Auftreten von string1 folgt. Beispiel: substring-after('12/10','/') Ergebnis: '10' |
fn:matches(string,pattern) |
Gibt true zurück, wenn der string-Parameter mit dem angegebenen Muster übereinstimmt, sonst wird false zurückgegeben. Beispiel: matches("Merano", "ran") Ergebnis: true |
fn:replace(string,pattern,replace) |
Ersetzt das angegebene Muster durch den replace-Parameter und gibt das Ergebnis zurück. Beispiel: replace("Bella Italia", "l", "*") Ergebnis: 'Be**a Ita*ia' Beispiel: replace("Bella Italia", "l", "") Ergebnis: 'Bea Itaia' |
fn:tokenize(string,pattern) |
Beispiel: tokenize("XPath is fun", "\s+") Ergebnis: ("XPath", "is", "fun") |
Funktionen für anyURI.
Name | Beschreibung |
---|---|
fn:resolve-uri(relative,base) |
Funktionen für boolesche Werte.
Name | Beschreibung |
---|---|
fn:boolean(arg) | Gibt den booleschen Wert von Zahlen, Strings oder Knotensätzen zurück. |
fn:not(arg) |
Zunächst wird der Parameter durch die boolean() -Funktion in einen booleschen Wert umgewandelt. Gibt true zurück, wenn der boolesche Wert false ist, sonst wird true zurückgegeben. Beispiel: not(true()) Ergebnis: false |
fn:true() |
Gibt den booleschen Wert true zurück. Beispiel: true() Ergebnis: true |
fn:false() |
Gibt den booleschen Wert false zurück. Beispiel: false() Ergebnis: false |
Funktionen für Dauer, Datum und Uhrzeit.
Funktion zur Extraktion der Komponenten von Datum, Uhrzeit und Dauer.
Name | Beschreibung |
---|---|
fn:dateTime(date,time) | Konvertiert den Parameter in Datum und Uhrzeit. |
fn:years-from-duration(datetimedur) | Gibt die Zahl des Jahresanteils des Parameters als Standardwortlaut dar. |
fn:months-from-duration(datetimedur) | Gibt die Zahl des Monatsanteils des Parameters als Standardwortlaut dar. |
fn:days-from-duration(datetimedur) | Rückgabeparameter: Ganzzahl des Wertes der Tage, dargestellt in der Standardwortbedeutung. |
fn:hours-from-duration(datetimedur) | Rückgabeparameter: Ganzzahl des Wertes der Stunden, dargestellt in der Standardwortbedeutung. |
fn:minutes-from-duration(datetimedur) | Rückgabeparameter: Ganzzahl des Wertes der Minuten, dargestellt in der Standardwortbedeutung. |
fn:seconds-from-duration(datetimedur) | Rückgabeparameter: Dezimalzahl des Wertes der Minuten, dargestellt in der Standardwortbedeutung. |
fn:year-from-dateTime(datetime) |
Rückgabeparameter: Ganzzahl des lokalen Wertes des Jahres. Beispiel: year-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) Ergebnis: 2005 |
fn:month-from-dateTime(datetime) |
Rückgabeparameter: Ganzzahl des lokalen Wertes des Monats. Beispiel: month-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) Ergebnis: 01 |
fn:day-from-dateTime(datetime) |
Rückgabeparameter: Ganzzahl des lokalen Wertes des Tages. Beispiel: day-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) Ergebnis: 10 |
fn:hours-from-dateTime(datetime) |
Rückgabeparameter: Ganzzahl des lokalen Wertes der Stunden. Beispiel: hours-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) Ergebnis: 12 |
fn:minutes-from-dateTime(datetime) |
Rückgabeparameter: Ganzzahl des lokalen Wertes der Minuten. Beispiel: minutes-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) Ergebnis: 30 |
fn:seconds-from-dateTime(datetime) |
Rückgabeparameter: Dezimalzahl des lokalen Wertes der Sekunden. Beispiel: seconds-from-dateTime(xs:dateTime("2005-01-10T12:30:00-04:10")) Ergebnis: 0 |
fn:timezone-from-dateTime(datetime) | Gibt den Zeitzone-Teil des Parameters zurück, wenn er existiert. |
fn:year-from-date(date) |
Gibt die ganze Zahl zurück, die im lokalen Wert des Parameters das Jahr darstellt. Beispiel: year-from-date(xs:date("2005-04-23")) Ergebnis: 2005 |
fn:month-from-date(date) |
Gibt die ganze Zahl zurück, die im lokalen Wert des Parameters den Monat darstellt. Beispiel: month-from-date(xs:date("2005-04-23")) Ergebnis: 4 |
fn:day-from-date(date) |
Gibt die ganze Zahl zurück, die im lokalen Wert des Parameters den Tag darstellt. Beispiel: day-from-date(xs:date("2005-04-23")) Ergebnis: 23 |
fn:timezone-from-date(date) | Gibt den Zeitzone-Teil des Parameters zurück, wenn er existiert. |
fn:hours-from-time(time) |
Gibt die ganze Zahl zurück, die im lokalen Wert des Parameters die Stundenpart darstellt. Beispiel: hours-from-time(xs:time("10:22:00")) Ergebnis: 10 |
fn:minutes-from-time(time) |
Gibt die ganze Zahl zurück, die im lokalen Wert des Parameters die Minutenpart darstellt. Beispiel: minutes-from-time(xs:time("10:22:00")) Ergebnis: 22 |
fn:seconds-from-time(time) |
Gibt die ganze Zahl zurück, die im lokalen Wert des Parameters die Sekundenpart darstellt. Beispiel: seconds-from-time(xs:time("10:22:00")) Ergebnis: 0 |
fn:timezone-from-time(time) | Gibt den Zeitzone-Teil des Parameters zurück, wenn er existiert. |
fn:adjust-dateTime-to-timezone(datetime,timezone) |
Wenn der Parameter timezone leer ist, wird das dateTime ohne Zeitzone zurückgegeben. Sonst wird das dateTime mit der Zeitzone zurückgegeben. |
fn:adjust-date-to-timezone(date,timezone) |
Wenn der Parameter timezone leer ist, wird das Datum ohne Zeitzone zurückgegeben. Sonst wird das Datum mit der Zeitzone zurückgegeben. |
fn:adjust-time-to-timezone(time,timezone) |
Wenn der Parameter timezone leer ist, wird die Zeit ohne Zeitzone zurückgegeben. Ansonsten wird die Zeit mit dem Zeitzeichen zurückgegeben. |
Funktionen zu QNames
Name | Beschreibung |
---|---|
fn:QName() | |
fn:local-name-from-QName() | |
fn:namespace-uri-from-QName() | |
fn:namespace-uri-for-prefix() | |
fn:in-scope-prefixes() | |
fn:resolve-QName() |
Funktionen zu Knoten
Name | Beschreibung |
---|---|
|
Gibt den Namen des aktuellen oder ersten Knotens in der angegebenen Knotensequenz zurück. |
|
Gibt den Namen des aktuellen oder ersten Knotens in der angegebenen Knotensequenz zurück - ohne Namespace-Prefix. |
|
Gibt die Namespace-URI des aktuellen oder angegebenen Knotens zurück. |
fn:lang(lang) |
Gibt true zurück, wenn die Sprache des aktuellen Knotens mit der angegebenen Sprache übereinstimmt. Beispiel: Lang("en") ist true für <p xml:lang="en">...</p> Beispiel: Lang("de") ist false für <p xml:lang="en">...</p> |
|
Gibt den Wurzelknoten des Knotenbaums des aktuellen oder angegebenen Knotens zurück. Dies ist in der Regel der Dokumentknoten. |
Funktionen zur Sequenz
Allgemeine Funktion
Name | Beschreibung |
---|---|
fn:index-of((item,item,...),searchitem) |
Gibt die Position zurück, an der das searchitem-Element in der Sequenz der Elemente positioniert ist. Beispiel: index-of ((15, 40, 25, 40, 10), 40) Ergebnis: (2, 4) Beispiel: index-of (("a", "dog", "and", "a", "duck"), "a") Ergebnis (1, 4) Beispiel: index-of ((15, 40, 25, 40, 10), 18) Ergebnis: () |
fn:remove((item,item,...),position) |
Gibt eine neue Sequenz zurück, die durch den item-Parameter konstruiert wird - und das Element an der angegebenen position-Position entfernt. Beispiel: remove(("ab", "cd", "ef"), 0) Ergebnis: ("ab", "cd", "ef") Beispiel: remove(("ab", "cd", "ef"), 1) Ergebnis: ("cd", "ef") Beispiel: remove(("ab", "cd", "ef"), 4) Ergebnis: ("ab", "cd", "ef") |
fn:empty(item,item,...) |
Gibt true zurück, wenn der Parameterwert eine leere Sequenz ist, sonst false. Beispiel: empty(remove(("ab", "cd"), 1)) Ergebnis: false |
fn:exists(item,item,...) |
Gibt true zurück, wenn der Parameterwert keine leere Sequenz ist, sonst false. Beispiel: exists(remove(("ab"), 1)) Ergebnis: false |
fn:distinct-values((item,item,...),collation) |
Gibt die einzigartigen Werte zurück. Beispiel: distinct-values((1, 2, 3, 1, 2)) Ergebnis: (1, 2, 3) |
fn:insert-before((item,item,...),pos,inserts) |
Gibt eine neue Sequenz zurück, die durch das item-Parameter gebildet wird - und gleichzeitig an der von pos-Parameter angegebenen Position den Wert von inserts-Parameter einfügt. Beispiel: insert-before(("ab", "cd"), 0, "gh") Ergebnis: ("gh", "ab", "cd") Beispiel: insert-before(("ab", "cd"), 1, "gh") Ergebnis: ("gh", "ab", "cd") Beispiel: insert-before(("ab", "cd"), 2, "gh") Ergebnis: ("ab", "gh", "cd") Beispiel: insert-before(("ab", "cd"), 5, "gh") Ergebnis: ("ab", "cd", "gh") |
fn:reverse((item,item,...)) |
Gibt die umgekehrte Reihenfolge der angegebenen Elemente zurück. Beispiel: reverse(("ab", "cd", "ef")) Ergebnis: ("ef", "cd", "ab") Beispiel: reverse(("ab")) Ergebnis: ("ab") |
fn:subsequence((item,item,...),start,len) |
Gibt die Projektionsfolge zurück, die vom start-Parameter angegebenen Positionen enthält, und deren Länge durch den len-Parameter festgelegt wird. Die Position des ersten Elements ist 1. Beispiel: subsequence(($item1, $item2, $item3,...), 3) Ergebnis: ($item3, ...) Beispiel: subsequence(($item1, $item2, $item3, ...), 2, 2) Ergebnis: ($item2, $item3) |
fn:unordered((item,item,...)) | Rückgabe der Elemente in der vom Implementierungsorten bestimmten Reihenfolge. |
Funktionen zum Testen der Kapazität der Sequenz
Name | Beschreibung |
---|---|
fn:zero-or-one(item,item,...) | Rückgabe des Parameters, wenn er null oder ein Element enthält, sonst wird ein Fehler generiert. |
fn:one-or-more(item,item,...) | Rückgabe des Parameters, wenn er ein oder mehrere Elemente enthält, sonst wird ein Fehler generiert. |
fn:exactly-one(item,item,...) | Rückgabe des Parameters, wenn er ein Element enthält, sonst wird ein Fehler generiert. |
Equals, Union, Intersection und Except
Name | Beschreibung |
---|---|
fn:deep-equal(param1,param2,collation) | Rückgabe von true, wenn param1 und param2 mit einander gleich sind (deep-equal), sonst false. |
Kombinationsfunktion
Name | Beschreibung |
---|---|
fn:count((item,item,...)) | Rückgabe der Anzahl der Knoten. |
fn:avg((arg,arg,...)) |
Rückgabe des Durchschnittswerts der Werte der Parameter. Beispiel: avg((1,2,3)) Ergebnis: 2 |
fn:max((arg,arg,...)) |
Rückgabe des Parameters, der größer als die anderen Parameter ist. Beispiel: max((1,2,3)) Ergebnis: 3 Beispiel: max(('a', 'k')) Ergebnis: 'k' |
fn:min((arg,arg,...)) |
Rückgabe des Parameters, der kleiner als die anderen Parameter ist. Beispiel: min((1,2,3)) Ergebnis: 1 Beispiel: min(('a', 'k')) Ergebnis: 'a' |
fn:sum(arg,arg,...) | Rückgabe der Summe der numerischen Werte jedes Knotens in der angegebenen Knotenmenge. |
Funktionen zur Generierung von Sequenzen
Name | Beschreibung |
---|---|
fn:id((string,string,...),node) | Rückgabe einer Sequenz von Elementknoten, deren ID-Werte mit den in dem String-Parameter angegebenen einem oder mehreren Werten übereinstimmen. |
fn:idref((string,string,...),node) | Rückgabe einer Sequenz von Element- oder Attributknoten, deren IDREF-Werte mit den in dem String-Parameter angegebenen einem oder mehreren Werten übereinstimmen. |
fn:doc(URI) | |
fn:doc-available(URI) | Gibt true zurück, wenn die Funktion doc() einen Dokumentknoten zurückgibt, anderenfalls wird false zurückgegeben. |
|
Kontextfunktionen
Name | Beschreibung |
---|---|
fn:position() |
Rückgabe der Indexposition des aktuellen Knotens, der bearbeitet wird. Beispiel: //book[position()<=3] Ergebnis: Auswahl der ersten drei book-Elemente |
fn:last() |
Rückgabe der Anzahl der Elemente in der Liste der verarbeiteten Knoten. Beispiel: //book[last()] Ergebnis: Auswahl des letzten book-Elements |
fn:current-dateTime() | Rückgabe des aktuellen dateTime (mit Zeitzone). |
fn:current-date() | Rückgabe des aktuellen Datums (mit Zeitzone). |
fn:current-time() | Rückgabe der aktuellen Zeit (mit Zeitzone). |
fn:implicit-timezone() | Rückgabe des Wertes der impliziten Zeitzone. |
fn:default-collation() | Rückgabe des Wertes der Standardabgleichsart. |
fn:static-base-uri() | Rückgabe des Wertes von base-uri. |
XSLT-Funktionen
Darüber hinaus gibt es folgende eingebettete XSLT-Funktionen:
Name | Beschreibung |
---|---|
current() | Rückgabe einer Knotensequenz, die den aktuellen Knoten als einzigen Mitglied enthält. |
document() | Wird verwendet, um auf Knoten in externen XML-Dokumenten zuzugreifen. |
element-available() | Überprüft, ob der XSLT-Processor das angegebene Element unterstützt. |
format-number() | Konvertiert eine Zahl in einen String. |
function-available() | Überprüft, ob der XSLT-Processor die angegebene Funktion unterstützt. |
generate-id() | Rückgabe eines Strings, der den spezifischen Knoten eindeutig identifiziert. |
key() | Abfrage von Elementen, die durch einen <xsl:key> Ausdruck markiert wurden. |
node-set | Konvertiert einen Baum in eine Knotensequenz. Die generierte Knotensequenz enthält immer einen einzigen Knoten und ist der Wurzelknoten des Baums. |
system-property() | Rückgabe des Wertes eines Systemattributs. |
unparsed-entity-uri() | Rückgabe der URI des nicht verarbeiteten Elements. |
- Vorherige Seite XSLT Elemente
- Nächste Seite XML-Tutorial