Funkcje XSLT, XPath oraz XQuery
- Poprzednia strona Elementy XSLT
- Następna strona Tutorial XML
XSLT 2.0, XPath 2.0 i XQuery 1.0 dzielą ten sam zestaw funkcji.
Podręcznik funkcji
Domyślny prefiks przestrzeni nazw funkcji to:fn:
URI przestrzeni nazw funkcji to:http://www.w3.org/2005/xpath-functions
Wskazówka:Zwykle używa się fn:
prefiksem do wywoływania funkcji, na przykład fn:string()
Jednakże, ponieważ fn:
Jest domyślnym prefiksem przestrzeni nazw, więc nazwa funkcji nie wymaga dodania prefiksu przy wywoływaniu.
Funkcje dostępu
Nazwa | Uwaga |
---|---|
fn:node-name(node) | Zwraca nazwę węzła parametru. |
fn:nilled(node) | Zwraca wartość logiczną określającą, czy węzeł parametru jest odrzucony. |
fn:data(item.item,...) | Akceptuje sekwencję elementów i zwraca sekwencję wartości atomowych. |
|
Zwraca wartość atrybutu base-uri bieżącego lub określonego węzła. |
fn:document-uri(node) | Zwraca wartość atrybutu document-uri określonego węzła. |
Funkcje błędów i śledzenia
Nazwa | Uwaga |
---|---|
|
Przykład: error(fn:QName('http://example.com/test', 'err:toohigh'), 'Błąd: Cena jest zbyt wysoka') Wynik: Zwraca do zewnętrznego środowiska przetwarzania http://example.com/test#toohigh oraz ciąg znaków "Błąd: Cena jest zbyt wysoka". |
fn:trace(value,label) | Używane do debugowania zapytań. |
Funkcje dotyczące liczb
Nazwa | Uwaga |
---|---|
fn:number(arg) |
Zwraca wartość parametru. Parametr może być wartością logiczną, ciągami znaków lub zbiorem węzłów. Przykład: number('100') Wynik: 100 |
fn:abs(num) |
Zwróć wartość bezwzględną argumentu. Przykład: abs(3.14) Wynik: 3.14 Przykład: abs(-3.14) Wynik: 3.14 |
fn:ceiling(num) |
Zwróć najmniejszą liczbę całkowitą większą niż parametr num. Przykład: ceiling(3.14) Wynik: 4 |
fn:floor(num) |
Zwróć największą liczbę całkowitą nie większą niż parametr num. Przykład: floor(3.14) Wynik: 3 |
fn:round(num) |
Zaokrąglij parametr num do najbliższej liczby całkowitej. Przykład: round(3.14) Wynik: 3 |
fn:round-half-to-even() |
Przykład: round-half-to-even(0.5) Wynik: 0 Przykład: round-half-to-even(1.5) Wynik: 2 Przykład: round-half-to-even(2.5) Wynik: 2 |
Funkcje dotyczące stringów
Nazwa | Uwaga |
---|---|
fn:string(arg) |
Zwróć wartość stringową argumentu. Argumentem może być liczba, wartość logiczna lub zbiór węzłów. Przykład: string(314) Wynik: "314" |
fn:codepoints-to-string(int,int,...) |
Zgodnie z sekwencją kodów punktowanych zwróć string. Przykład: codepoints-to-string(84, 104, 233, 114, 232, 115, 101) Wynik: 'Thérèse' |
fn:string-to-codepoints(string) |
Zgodnie ze stringiem zwróć sekwencję kodów punktowanych. Przykład: string-to-codepoints("Thérèse") Wynik: 84, 104, 233, 114, 232, 115, 101 |
fn:codepoint-equal(comp1,comp2) | Zgodnie z porównaniem kodów punktowanych Unicode, jeśli wartość comp1 jest równa wartości comp2, zwróć true. W przeciwnym razie zwróć false. (http://www.w3.org/2005/02/xpath-functions/collation/codepoint). |
|
Jeśli comp1 jest mniejszy niż comp2, zwróć -1. Jeśli comp1 jest równy comp2, zwróć 0. Jeśli comp1 jest większy niż comp2, zwróć 1. (Zgodnie z używanymi zasadami porównania). Przykład: compare('ghi', 'ghi') Wynik: 0 |
fn:concat(string,string,...) |
Zwraca sklejone ciągi znaków. Przykład: concat('XPath ','is ','FUN!') Wynik: 'XPath is FUN!' |
fn:string-join((string,string,...),sep) |
Używa parametru sep jako separatora, aby zwrócić sklejony ciąg znaków parametru string. Przykład: string-join(('We', 'are', 'having', 'fun!'), ' ') Wynik: ' We are having fun! ' Przykład: string-join(('We', 'are', 'having', 'fun!')) Wynik: 'Wearehavingfun!' Przykład: string-join((), 'sep') Wynik: '' |
|
Zwraca podciąg o określonej długości zaczynający się od pozycji start. Pierwszy znak ma indeks 1. Jeśli pominięto parametr len, zwraca podciąg od pozycji start do końca ciągu. Przykład: substring('Beatles',1,4) Wynik: 'Beat' Przykład: substring('Beatles',2) Wynik: 'eatles' |
|
Zwraca długość określonego ciągu znaków. Jeśli nie podano parametru string, zwraca długość wartości tekstowej bieżącego węzła. Przykład: string-length('Beatles') Wynik: 7 |
|
Usuwa białe znaki z początku i końca określonego ciągu znaków i zastępuje wszystkie sekwencje białych znaków jednym, zwracając wynik. Jeśli nie podano parametru string, przetwarza bieżący węzeł. Przykład: normalize-space(' The XML ') Wynik: 'The XML' |
fn:normalize-unicode() | Wykonuje specyfikację Unicode. |
fn:upper-case(string) |
Konwertuje parametr string na wielkie litery. Przykład: upper-case('The XML') Wynik: 'THE XML' |
fn:lower-case(string) |
Konwertuje parametr string na małe litery. Przykład: lower-case('The XML') Wynik: 'the xml' |
fn:translate(string1,string2,string3) |
Zamienia string2 w string1 na string3. Przykład: translate('12:30','30','45') Wynik: '12:45' Przykład: translate('12:30','03','54') Wynik: '12:45' Przykład: translate('12:30','0123','abcd') Wynik: 'bc:da' |
fn:escape-uri(stringURI,esc-res) |
Przykład: escape-uri("http://example.com/test#car", true()) Wynik: "http%3A%2F%2Fexample.com%2Ftest#car" Przykład: escape-uri("http://example.com/test#car", false()) Wynik: "http://example.com/test#car" Przykład: escape-uri ("http://example.com/~bébé", false()) Wynik: "http://example.com/~b%C3%A9b%C3%A9" |
fn:contains(string1,string2) |
Jeśli string1 zawiera string2, zwraca true, w przeciwnym razie zwraca false. Przykład: contains('XML','XM') Wynik: true |
fn:starts-with(string1,string2) |
Jeśli string1 zaczyna się string2, zwraca true, w przeciwnym razie zwraca false. Przykład: starts-with('XML','X') Wynik: true |
fn:ends-with(string1,string2) |
Jeśli string1 kończy się string2, zwraca true, w przeciwnym razie zwraca false. Przykład: ends-with('XML','X') Wynik: false |
fn:substring-before(string1,string2) |
Zwraca podstring przed pojawieniem się string2 w string1. Przykład: substring-before('12/10','/') Wynik: '12' |
fn:substring-after(string1,string2) |
Zwraca podciąg znaków znajdujący się po string2 w string1. Przykład: substring-after('12/10','/') Wynik: '10' |
fn:matches(string,pattern) |
Zwraca true, jeśli parametr string pasuje do określonego wzorca, w przeciwnym razie zwraca false. Przykład: matches('Merano', 'ran') Wynik: true |
fn:replace(string,pattern,replace) |
Zastępuje określony wzorzec replace parametrem i zwraca wynik. Przykład: replace('Bella Italia', 'l', '*') Wynik: 'Be**a Ita*ia' Przykład: replace('Bella Italia', 'l', '') Wynik: 'Bea Itaia' |
fn:tokenize(string,pattern) |
Przykład: tokenize('XPath is fun', '\s+') Wynik: ('XPath', 'is', 'fun') |
Funkcje dotyczące anyURI.
Nazwa | Uwaga |
---|---|
fn:resolve-uri(relative,base) |
Funkcje dotyczące wartości logicznych.
Nazwa | Uwaga |
---|---|
fn:boolean(arg) | Zwraca wartość logiczną dla liczby, ciągu znaków lub zbioru węzłów. |
fn:not(arg) |
Najpierw przywraca parametr do wartości logicznej za pomocą funkcji boolean(). Zwraca true, jeśli wartość logiczna jest fałszywa, w przeciwnym razie zwraca true. Przykład: not(true()) Wynik: false |
fn:true() |
Zwraca wartość logiczną prawdziwą. Przykład: true() Wynik: true |
fn:false() |
Zwraca wartość logiczną fałszywą. Przykład: false() Wynik: false |
Funkcje dotyczące trwania, daty i czasu.
Funkcja wyodrębniająca składniki daty, czasu i trwania.
Nazwa | Uwaga |
---|---|
fn:dateTime(date,time) | Konwertuje parametr na datę i czas. |
fn:years-from-duration(datetimedur) | Zwraca wartość roczną parametru jako liczbę całkowitą, wyrażoną w standardowym słownictwie. |
fn:months-from-duration(datetimedur) | Zwraca wartość miesięczną parametru jako liczbę całkowitą, wyrażoną w standardowym słownictwie. |
fn:days-from-duration(datetimedur) | Zwraca całkowitą wartość dni wartości parametru, przedstawioną w standardowym systemie słownym. |
fn:hours-from-duration(datetimedur) | Zwraca całkowitą wartość godzin wartości parametru, przedstawioną w standardowym systemie słownym. |
fn:minutes-from-duration(datetimedur) | Zwraca całkowitą wartość minut wartości parametru, przedstawioną w standardowym systemie słownym. |
fn:seconds-from-duration(datetimedur) | Zwraca dziesiętną wartość minut wartości parametru, przedstawioną w standardowym systemie słownym. |
fn:year-from-dateTime(datetime) |
Zwraca całkowitą wartość lat lokalnej wartości parametru. Przykład: year-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) Wynik: 2005 |
fn:month-from-dateTime(datetime) |
Zwraca całkowitą wartość miesięcy lokalnej wartości parametru. Przykład: month-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) Wynik: 01 |
fn:day-from-dateTime(datetime) |
Zwraca całkowitą wartość dni lokalnej wartości parametru. Przykład: day-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) Wynik: 10 |
fn:hours-from-dateTime(datetime) |
Zwraca całkowitą wartość godzin lokalnej wartości parametru. Przykład: hours-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) Wynik: 12 |
fn:minutes-from-dateTime(datetime) |
Zwraca całkowitą wartość minut lokalnej wartości parametru. Przykład: minutes-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) Wynik: 30 |
fn:seconds-from-dateTime(datetime) |
Zwraca dziesiętną wartość sekundową lokalnej wartości parametru. Przykład: seconds-from-dateTime(xs:dateTime("2005-01-10T12:30:00-04:10")) Wynik: 0 |
fn:timezone-from-dateTime(datetime) | Zwraca część strefy czasowej parametru, jeśli istnieje. |
fn:year-from-date(date) |
Zwraca całkowitą liczbę lat w wartości lokalnej parametru. Przykład: year-from-date(xs:date("2005-04-23")) Wynik: 2005 |
fn:month-from-date(date) |
Zwraca całkowitą liczbę miesięcy w wartości lokalnej parametru. Przykład: month-from-date(xs:date("2005-04-23")) Wynik: 4 |
fn:day-from-date(date) |
Zwraca całkowitą liczbę dni w wartości lokalnej parametru. Przykład: day-from-date(xs:date("2005-04-23")) Wynik: 23 |
fn:timezone-from-date(date) | Zwraca część strefy czasowej parametru, jeśli istnieje. |
fn:hours-from-time(time) |
Zwraca całkowitą liczbę godzin w wartości lokalnej parametru. Przykład: hours-from-time(xs:time("10:22:00")) Wynik: 10 |
fn:minutes-from-time(time) |
Zwraca całkowitą liczbę minut w wartości lokalnej parametru. Przykład: minutes-from-time(xs:time("10:22:00")) Wynik: 22 |
fn:seconds-from-time(time) |
Zwraca całkowitą liczbę sekund w wartości lokalnej parametru. Przykład: seconds-from-time(xs:time("10:22:00")) Wynik: 0 |
fn:timezone-from-time(time) | Zwraca część strefy czasowej parametru, jeśli istnieje. |
fn:adjust-dateTime-to-timezone(datetime,timezone) |
Jeśli parametr timezone jest pusty, zwracany jest dateTime bez strefy czasowej. W przeciwnym razie zwracany jest dateTime z strefą czasową. |
fn:adjust-date-to-timezone(date,timezone) |
Jeśli parametr timezone jest pusty, zwracany jest data bez strefy czasowej. W przeciwnym razie zwracany jest data z strefą czasową. |
fn:adjust-time-to-timezone(time,timezone) |
Jeśli parametr timezone jest pusty, zwracany jest czas bez strefy czasowej. W przeciwnym razie zwraca czas z datą i czasem. |
Funkcje związane z QNames
Nazwa | Uwaga |
---|---|
fn:QName() | |
fn:local-name-from-QName() | |
fn:namespace-uri-from-QName() | |
fn:namespace-uri-for-prefix() | |
fn:in-scope-prefixes() | |
fn:resolve-QName() |
Funkcje dotyczące węzłów
Nazwa | Uwaga |
---|---|
|
Zwraca nazwę bieżącego węzła lub pierwszego węzła w zestawie węzłów. |
|
Zwraca nazwę bieżącego węzła lub pierwszego węzła w zestawie węzłów - bez prefiksu przestrzeni nazw. |
|
Zwraca URI przestrzeni nazw bieżącego węzła lub pierwszego węzła w zestawie węzłów. |
fn:lang(lang) |
Zwraca true, jeśli język bieżącego węzła pasuje do określonego języka. Przykład: Lang("en") jest prawdziwe dla <p xml:lang="en">...</p> Przykład: Lang("de") jest fałszywe dla <p xml:lang="en">...</p> |
|
Zwraca korzeń drzewa węzłów bieżącego lub określonego węzła. Zwykle jest to węzeł dokumentu. |
Funkcje dotyczące sekwencji
Ogólna funkcja
Nazwa | Uwaga |
---|---|
fn:index-of((item,item,...),searchitem) |
Zwraca pozycję elementu w sekwencji równego parametrowi searchitem. Przykład: index-of ((15, 40, 25, 40, 10), 40) Wynik: (2, 4) Przykład: index-of (("a", "dog", "and", "a", "duck"), "a") Wynik (1, 4) Przykład: index-of ((15, 40, 25, 40, 10), 18) Wynik: () |
fn:remove((item,item,...),position) |
Zwraca nową sekwencję zbudowaną z parametru item - jednocześnie usuwając element指定 position parametru. Przykład: remove(("ab", "cd", "ef"), 0) Wynik: ("ab", "cd", "ef") Przykład: remove(("ab", "cd", "ef"), 1) Wynik: ("cd", "ef") Przykład: remove(("ab", "cd", "ef"), 4) Wynik: ("ab", "cd", "ef") |
fn:empty(item,item,...) |
Zwraca true, jeśli wartość parametru jest pustą sekwencją, w przeciwnym razie zwraca false. Przykład: empty(remove(("ab", "cd"), 1)) Wynik: false |
fn:exists(item,item,...) |
Zwraca true, jeśli wartość parametru nie jest pustą sekwencją, w przeciwnym razie zwraca false. Przykład: exists(remove(("ab"), 1)) Wynik: false |
fn:distinct-values((item,item,...),collation) |
Zwraca unikalne wartości. Przykład: distinct-values((1, 2, 3, 1, 2)) Wynik: (1, 2, 3) |
fn:insert-before((item,item,...),pos,inserts) |
Zwraca nową sekwencję zbudowaną z parametru item, gdzie wartość parametru inserts jest wstawiona w pozycji określonej przez parametr pos. Przykład: insert-before(("ab", "cd"), 0, "gh") Wynik: ("gh", "ab", "cd") Przykład: insert-before(("ab", "cd"), 1, "gh") Wynik: ("gh", "ab", "cd") Przykład: insert-before(("ab", "cd"), 2, "gh") Wynik: ("ab", "gh", "cd") Przykład: insert-before(("ab", "cd"), 5, "gh") Wynik: ("ab", "cd", "gh") |
fn:reverse((item,item,...)) |
Zwraca odwróconą kolejność określonych elementów. Przykład: reverse(("ab", "cd", "ef")) Wynik: ("ef", "cd", "ab") Przykład: reverse(("ab")) Wynik: ("ab") |
fn:subsequence((item,item,...),start,len) |
Zwraca sekwencję elementów zaczynającą się od pozycji określonej przez parametr start, długość sekwencji określona przez parametr len. Pozycja pierwszego elementu to 1. Przykład: subsequence(($item1, $item2, $item3,...), 3) Wynik: ($item3, ...) Przykład: subsequence(($item1, $item2, $item3, ...), 2, 2) Wynik: ($item2, $item3) |
fn:unordered((item,item,...)) | Zwraca elementy w kolejności zależnej od implementacji. |
Funkcje testujące pojemność sekwencji
Nazwa | Uwaga |
---|---|
fn:zero-or-one(item,item,...) | Zwraca parametr, jeśli zawiera zero lub jeden element, w przeciwnym razie generuje błąd. |
fn:one-or-more(item,item,...) | Zwraca parametr, jeśli zawiera jeden lub więcej elementów, w przeciwnym razie generuje błąd. |
fn:exactly-one(item,item,...) | Zwraca parametr, jeśli zawiera jeden element, w przeciwnym razie generuje błąd. |
Equals, Union, Intersection i Except
Nazwa | Uwaga |
---|---|
fn:deep-equal(param1,param2,collation) | Zwraca true, jeśli param1 i param2 są równe sobie (deep-equal), w przeciwnym razie zwraca false. |
Funkcje sumaryczne
Nazwa | Uwaga |
---|---|
fn:count((item,item,...)) | Zwraca liczbę węzłów. |
fn:avg((arg,arg,...)) |
Zwraca średnią wartość parametrów. Przykład: avg((1,2,3)) Wynik: 2 |
fn:max((arg,arg,...)) |
Zwraca parametr większy niż inne parametry. Przykład: max((1,2,3)) Wynik: 3 Przykład: max(('a', 'k')) Wynik: 'k' |
fn:min((arg,arg,...)) |
Zwraca parametr mniejszy niż inne parametry. Przykład: min((1,2,3)) Wynik: 1 Przykład: min(('a', 'k')) Wynik: 'a' |
fn:sum(arg,arg,...) | Zwraca sumę wartości liczbowych wszystkich węzłów w określonym zbiorze węzłów. |
Funkcje generujące sekwencje
Nazwa | Uwaga |
---|---|
fn:id((string,string,...),node) | Zwraca sekwencję węzłów, których wartość ID jest równa jednej lub kilku wartości podanej w parametrze string. |
fn:idref((string,string,...),node) | Zwraca sekwencję węzłów lub atrybutów, których wartość IDREF jest równa jednej lub kilku wartości podanej w parametrze string. |
fn:doc(URI) | |
fn:doc-available(URI) | Zwraca true, jeśli funkcja doc() zwraca węzeł dokumentu, w przeciwnym razie zwraca false. |
|
Funkcje kontekstowe
Nazwa | Uwaga |
---|---|
fn:position() |
Zwraca pozycję bieżącego węzła przetwarzanego. Przykład: //book[position()<=3] Wynik: wybór pierwszych trzech elementów book |
fn:last() |
Zwraca liczbę elementów w liście węzłów przetwarzanych. Przykład: //book[last()] Wynik: wybór ostatniego elementu book |
fn:current-dateTime() | Zwraca bieżący dateTime (z strefą czasową). |
fn:current-date() | Zwraca bieżącą datę (z strefą czasową). |
fn:current-time() | Zwraca bieżącą godzinę (z strefą czasową). |
fn:implicit-timezone() | Zwraca wartość ukrytej strefy czasowej. |
fn:default-collation() | Zwraca wartość domyślnej kolizji. |
fn:static-base-uri() | Zwraca wartość base-uri. |
Funkcje XSLT
Oprócz tego, istnieją również następujące wbudowane funkcje XSLT:
Nazwa | Opis |
---|---|
current() | Zwraca zestaw węzłów, który zawiera jako jedyny człon bieżący węzeł. |
document() | Używane do dostępu do węzłów w zewnętrznym dokumencie XML. |
element-available() | Sprawdza, czy procesor XSLT obsługuje określony element. |
format-number() | Konwertuje liczbę na ciąg znaków. |
function-available() | Sprawdza, czy procesor XSLT obsługuje określone funkcje. |
generate-id() | Zwraca ciąg znaków, który jednoznacznie identyfikuje określony węzeł. |
key() | Wyszukuje elementy oznaczone wcześniej za pomocą wyrażenia <xsl:key>. |
node-set | Konwertuje drzewo na zestaw węzłów. Tworzony zestaw węzłów zawsze zawiera pojedynczy węzeł i jest korzeniem drzewa. |
system-property() | Zwróć wartość atrybutu systemowego. |
unparsed-entity-uri() | Zwróć URI nieprzetworzonej entności. |
- Poprzednia strona Elementy XSLT
- Następna strona Tutorial XML