Funkcje XPath, XQuery oraz XSLT
- Poprzednia strona Podsumowanie XPath
- Następna strona Podręcznik XPath
Funkcje dostępu
Nazwa | Wyjaśnienie |
---|---|
fn:node-name(node) | Zwraca nazwę węzła parametru. |
fn:nilled(node) | Zwraca wartość logiczną określającą, czy węzeł parametru jest pusty. |
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 | Wyjaśnienie |
---|---|
|
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 liczbowe
Nazwa | Wyjaśnienie |
---|---|
fn:number(arg) |
Zwraca wartość liczbową 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) |
Zwraca wartość bezwzględną parametru. Przykład: abs(3.14) Wynik: 3.14 Przykład: abs(-3.14) Wynik: 3.14 |
fn:ceiling(num) |
Zwraca najmniejszą liczbę całkowitą większą od parametru num. Przykład: ceiling(3.14) Wynik: 4 |
fn:floor(num) |
Zwraca największą liczbę całkowitą nie większą niż parametr num. Przykład: floor(3.14) Wynik: 3 |
fn:round(num) |
Zaokrągla 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 ciągów znaków
Nazwa | Wyjaśnienie |
---|---|
fn:string(arg) |
Zwraca wartość tekstową 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, ...) |
Zwraca ciąg znaków z sekwencji kodów punktowanych. Przykład: codepoints-to-string(84, 104, 233, 114, 232, 115, 101) Wynik: 'Thérèse' |
fn:string-to-codepoints(tekst) |
Zwraca sekwencję kodów punktowanych z ciągu znaków. 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ówne comp2, zwróć 0. Jeśli comp1 jest większy niż comp2, zwróć 1. (Zgodnie z używaną zasadą porównania). Przykład: compare('ghi', 'ghi') Wynik: 0 |
fn:łączenie(tekst, tekst, ...) |
Zwraca łączenie ciągów znaków. Przykład: concat('XPath ', 'is ', 'FUN!') Wynik: 'XPath jest FUN!" |
fn:łączenie(tekst, tekst, ..., separator) |
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 znaków 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 znaków 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 string bieżącego węzła. Przykład: string-length('Beatles') Wynik: 7 |
|
Usuwa białe znaki z początku i końca określonej 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 duże 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) |
Zwraca true, jeśli string1 zawiera string2, w przeciwnym razie zwraca false. Przykład: contains('XML','XM') Wynik: true |
fn:starts-with(string1,string2) |
Zwraca true, jeśli string1 zaczyna się string2, w przeciwnym razie zwraca false. Przykład: starts-with('XML','X') Wynik: true |
fn:ends-with(string1,string2) |
Zwraca true, jeśli string1 kończy się string2, w przeciwnym razie zwraca false. Przykład: ends-with('XML','X') Wynik: false |
fn:substring-before(string1,string2) |
Zwraca podciąg znaków, który występuje przed string2 w string1. Przykład: substring-before('12/10','/') Wynik: '12' |
fn:substring-after(string1,string2) |
Zwraca podciąg znaków, który występuje 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 wartością z parametru replace 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 | Wyjaśnienie |
---|---|
fn:resolve-uri(relative,base) |
Funkcje dotyczące wartości logicznych.
Nazwa | Wyjaśnienie |
---|---|
fn:boolean(arg) | Zwraca wartość logiczną dla liczby, ciągu lub zbioru węzłów. |
fn:not(arg) |
Najpierw przywraca wartość parametru do wartości logicznej za pomocą funkcji boolean(). Jeśli wartość logiczna wynosi false, zwraca true, w przeciwnym razie zwraca true. Przykład: not(true()) Wynik: false |
fn:true() |
Zwraca wartość logiczną true. Przykład: true() Wynik: true |
fn:false() |
Zwraca wartość logiczną false. Przykład: false() Wynik: false |
Funkcje dotyczące trwania, daty i czasu.
Funkcje do wyodrębniania składników daty, czasu i trwania.
Nazwa | Wyjaśnienie |
---|---|
fn:dateTime(date,time) | Konwertuje parametr na datę i czas. |
fn:years-from-duration(datetimedur) | Zwraca wartość roczną parametru jako liczbę całkowitą, zapisaną w formie słownej. |
fn:months-from-duration(datetimedur) | Zwraca wartość miesięczną parametru jako liczbę całkowitą, zapisaną w formie słownej. |
fn:days-from-duration(datetimedur) | Zwraca wartość dniową parametru jako liczbę całkowitą, zapisaną w formie słownej. |
fn:hours-from-duration(datetimedur) | Zwraca wartość parametru jako całkowitą liczbę godzin, zapisaną w standardowym systemie słownym. |
fn:minutes-from-duration(datetimedur) | Zwraca wartość parametru jako całkowitą liczbę minut, zapisaną w standardowym systemie słownym. |
fn:seconds-from-duration(datetimedur) | Zwraca wartość parametru jako dziesiętną liczbę minut, zapisaną w standardowym systemie słownym. |
fn:year-from-dateTime(datetime) |
Zwraca lokalną wartość parametru jako całkowitą liczbę lat. Przykład: year-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) Wynik: 2005 |
fn:month-from-dateTime(datetime) |
Zwraca lokalną wartość parametru jako całkowitą liczbę miesięcy. Przykład: month-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) Wynik: 01 |
fn:day-from-dateTime(datetime) |
Zwraca lokalną wartość parametru jako całkowitą liczbę dni. Przykład: day-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) Wynik: 10 |
fn:hours-from-dateTime(datetime) |
Zwraca lokalną wartość parametru jako całkowitą liczbę godzin. Przykład: hours-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) Wynik: 12 |
fn:minutes-from-dateTime(datetime) |
Zwraca lokalną wartość parametru jako całkowitą liczbę minut. Przykład: minutes-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) Wynik: 30 |
fn:seconds-from-dateTime(datetime) |
Zwraca lokalną wartość parametru jako dziesiętną liczbę sekund. 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 lokalną wartość parametru jako całkowity liczba lat. 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, zwraca dateTime bez strefy czasowej. W przeciwnym razie zwraca dateTime z określoną strefą czasową. |
fn:adjust-date-to-timezone(date,timezone) | Jeśli parametr timezone jest pusty, zwraca datę bez strefy czasowej. W przeciwnym razie zwraca datę z określoną strefą czasową. |
fn:adjust-time-to-timezone(time,timezone) | Jeśli parametr timezone jest pusty, zwraca czas bez strefy czasowej. W przeciwnym razie zwraca czas z określoną strefą czasową. |
Funkcje związane z QNames
Nazwa | Wyjaśnienie |
---|---|
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 | Wyjaśnienie |
---|---|
|
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 przestrzeń nazw URI 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 wskazanego języka. Przykład: Lang("en") jest prawdziwy dla <p xml:lang="en">...</p> Przykład: Lang("de") jest fałszywy dla <p xml:lang="en">...</p> |
|
Zwraca korzeń drzewa węzłów bieżącego węzła lub wskazanego węzła. Zwykle jest to węzeł dokumentu. |
Funkcje dotyczące sekwencji
Ogólna funkcja
Nazwa | Wyjaśnienie |
---|---|
fn:index-of((item,item,...),searchitem) |
Zwraca pozycje elementów sekwencji, które są równe 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,...) |
Jeśli wartość parametru jest pustym sekwencją, zwraca true, 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 - jednocześnie w pozycji określonej przez parametr pos wstawia wartość z parametru inserts. 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 projektó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ę projektów指定位置由 start parametr指定,序列的长度由 len parametr指定。第一个项目的位置是 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 projekty w kolejności zależnej od realizacji. |
Funkcja testująca pojemność sekwencji
Nazwa | Wyjaśnienie |
---|---|
fn:zero-or-one(item,item,...) | Zwraca argument, jeśli zawiera zero lub jeden element, w przeciwnym razie generuje błąd. |
fn:one-or-more(item,item,...) | Zwraca argument, jeśli zawiera jeden lub więcej elementów, w przeciwnym razie generuje błąd. |
fn:exactly-one(item,item,...) | Zwraca argument, jeśli zawiera jeden element, w przeciwnym razie generuje błąd. |
Equals, Union, Intersection i Except
Nazwa | Wyjaśnienie |
---|---|
fn:deep-equal(param1,param2,collation) | Zwraca true, jeśli param1 i param2 są równe sobie (deep-equal), w przeciwnym razie zwraca false. |
Funkcja sumująca
Nazwa | Wyjaśnienie |
---|---|
fn:count((item,item,...)) | Zwraca liczbę węzłów. |
fn:avg((arg,arg,...)) |
Zwraca średnią wartości argumentów. Przykład: avg((1,2,3)) Wynik: 2 |
fn:max((arg,arg,...)) |
Zwraca argument 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 argument 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 węzłów w określonym zbiorze węzłów. |
Funkcja generująca sekwencję
Nazwa | Wyjaśnienie |
---|---|
fn:id((string,string,...),node) | Zwraca sekwencję węzłów elementowych, które mają wartość ID równą wartości jednej lub kilku wartości podanych w argumencie ciągłym |
fn:idref((string,string,...),node) | Zwraca sekwencję węzłów elementowych lub atrybutowych, które mają wartość IDREF równą wartości jednej lub kilku wartości podanych w argumencie ciągłym |
fn:doc(URI) | |
fn:doc-available(URI) | Jeśli funkcja doc() zwraca węzeł dokumentu, zwróć true, w przeciwnym razie zwróć false. |
|
Funkcje kontekstowe
Nazwa | Wyjaśnienie |
---|---|
fn:position() |
Zwróć pozycję bieżącego węzła przetwarzanego. Przykład: //book[position()<=3] Wynik: wybierz pierwsze trzy elementy book |
fn:last() |
Zwróć liczbę elementów w liście węzłów przetwarzanych. Przykład: //book[last()] Wynik: wybierz ostatni element book |
fn:current-dateTime() | Zwróć bieżący dateTime (z strefą czasową). |
fn:current-date() | Zwróć bieżącą datę (z strefą czasową). |
fn:current-time() | Zwróć bieżącą godzinę (z strefą czasową). |
fn:implicit-timezone() | Zwróć wartość ukrytego strefy czasowej. |
fn:default-collation() | Zwróć wartość domyślnej kolizji. |
fn:static-base-uri() | Zwróć wartość base-uri. |
- Poprzednia strona Podsumowanie XPath
- Następna strona Podręcznik XPath