XSLT, XPath och XQuery funktioner
- Föregående sida XSLT element
- Nästa sida XML tutorial
XSLT 2.0, XPath 2.0, and XQuery 1.0 share the same function library.
Function Reference Manual
The default prefix of the function namespace is:fn:
The URI of the function namespace is:http://www.w3.org/2005/xpath-functions
Tip:usually used fn:
prefix to call the function, for example fn:string()
However, due to fn:
It is the default prefix of the namespace, so the prefix is not needed when calling the function.
Access functions
Namn | Förklaring |
---|---|
fn:node-name(node) | Return the node name of the parameter node. |
fn:nilled(node) | Return a boolean value indicating whether the parameter node is rejected. |
fn:data(item.item,...) | Accepts a sequence of items and returns a sequence of atomic values. |
|
Return the value of the base-uri attribute of the current node or the specified node. |
fn:document-uri(node) | Return the value of the document-uri attribute of the specified node. |
Error and trace functions
Namn | Förklaring |
---|---|
|
Example: error(fn:QName('http://example.com/test', 'err:toohigh'), 'Error: Price is too high') Result: Return http://example.com/test#toohigh and the string "Error: Price is too high" to the external processing environment. |
fn:trace(value,label) | Used for debugging queries. |
Functions related to numbers
Namn | Förklaring |
---|---|
fn:number(arg) |
Return the numeric value of the parameter. The parameter can be a boolean value, a string, or a node set. Exempel: number('100') Resultat: 100 |
fn:abs(num) |
Returnera det absoluta värdet för argumentet. Exempel: abs(3.14) Resultat: 3.14 Exempel: abs(-3.14) Resultat: 3.14 |
fn:ceiling(num) |
Returnera mindre än num-argumentets minsta heltal som är större än eller lika med num. Exempel: ceiling(3.14) Resultat: 4 |
fn:floor(num) |
Returnera större än num-argumentets största heltal som är mindre än eller lika med num. Exempel: floor(3.14) Resultat: 3 |
fn:round(num) |
Runda num-argumentet till närmaste heltal. Exempel: round(3.14) Resultat: 3 |
fn:round-half-to-even() |
Exempel: round-half-to-even(0.5) Resultat: 0 Exempel: round-half-to-even(1.5) Resultat: 2 Exempel: round-half-to-even(2.5) Resultat: 2 |
Funktioner för strängar
Namn | Förklaring |
---|---|
fn:string(arg) |
Returnera strängvärdet för argumentet. Argumentet kan vara ett nummer, ett logiskt värde eller en noduppsättning. Exempel: string(314) Resultat: "314" |
fn:codepoints-to-string(int,int,...) |
Returnera sträng baserat på kodpunktssekvens. Exempel: codepoints-to-string(84, 104, 233, 114, 232, 115, 101) Resultat: 'Thérèse' |
fn:string-to-codepoints(string) |
Returnera kodpunktssekvens baserat på sträng. Exempel: string-to-codepoints("Thérèse") Resultat: 84, 104, 233, 114, 232, 115, 101 |
fn:codepoint-equal(comp1,comp2) | Enligt Unicode-kodpunktskontroll, om värdet för comp1 är lika med värdet för comp2, returnera true. Annars returnera false. (http://www.w3.org/2005/02/xpath-functions/collation/codepoint). |
|
Om comp1 är mindre än comp2, returnera -1. Om comp1 är lika med comp2, returnera 0. Om comp1 är större än comp2, returnera 1. (Baserat på den använda kontrollregeln). Exempel: compare('ghi', 'ghi') Resultat: 0 |
fn:concat(string,string,...) |
Returnera sammansättning av strängar. Exempel: concat('XPath ','is ','FUN!') Resultat: 'XPath is FUN!' |
fn:string-join((string,string,...),sep) |
Använd sep-argumentet som separator för att returnera en sammansatt sträng från string-argumenten. Exempel: string-join(('We', 'are', 'having', 'fun!'), ' ') Resultat: ' We are having fun! ' Exempel: string-join(('We', 'are', 'having', 'fun!')) Resultat: 'Wearehavingfun!' Exempel: string-join((), 'sep') Resultat: '' |
|
Returnera en substräng av angiven längd som börjar vid start-positionen. Första tecknets index är 1. Om len-argumentet utelämnas, returneras substrängen från position start till strängens slut. Exempel: substring('Beatles',1,4) Resultat: 'Beat' Exempel: substring('Beatles',2) Resultat: 'eatles' |
|
Returnera längden på den angivna strängen. Om det inte finns ett string-argument, returneras längden på den aktuella nodens strängvärde. Exempel: string-length('Beatles') Resultat: 7 |
|
Ta bort blanka tecken från början och slutet av den angivna strängen, och ersätt alla interna blanktjänster med en, och returnera resultatet. Om det inte finns ett string-argument, behandlas den aktuella noden. Exempel: normalize-space(' The XML ') Resultat: 'The XML' |
fn:normalize-unicode() | utföra Unicode-standardisering. |
fn:upper-case(string) |
Konvertera string-argumentet till versalbokstäver. Exempel: upper-case('The XML') Result: 'THE XML' |
fn:lower-case(string) |
Convert the string parameter to lowercase. Example: lower-case('The XML') Result: 'the xml' |
fn:translate(string1,string2,string3) |
Replace string2 in string1 with string3. Example: translate('12:30','30','45') Result: '12:45' Example: translate('12:30','03','54') Result: '12:45' Example: translate('12:30','0123','abcd') Result: 'bc:da' |
fn:escape-uri(stringURI,esc-res) |
Example: escape-uri("http://example.com/test#car", true()) Result: "http%3A%2F%2Fexample.com%2Ftest#car" Example: escape-uri("http://example.com/test#car", false()) Result: "http://example.com/test#car" Example: escape-uri ("http://example.com/~bébé", false()) Result: "http://example.com/~b%C3%A9b%C3%A9" |
fn:contains(string1,string2) |
If string1 contains string2, return true, otherwise return false. Example: contains('XML','XM') Resultat: true |
fn:starts-with(string1,string2) |
If string1 starts with string2, return true, otherwise return false. Example: starts-with('XML','X') Resultat: true |
fn:ends-with(string1,string2) |
If string1 ends with string2, return true, otherwise return false. Example: ends-with('XML','X') Resultat: false |
fn:substring-before(string1,string2) |
Return the substring before the occurrence of string2 in string1. Exempel: substring-before('12/10','/') Resultat: '12' |
fn:substring-after(string1,string2) |
Returnerar den understräng som följer efter string2 i string1. Exempel: substring-after('12/10','/') Resultat: '10' |
fn:matches(string,pattern) |
Om string-parametern matchar det angivna mönstret returneras true, annars returneras false. Exempel: matches("Merano", "ran") Resultat: true |
fn:replace(string,pattern,replace) |
Byter ut det angivna mönstret mot replace-parametern och returnerar resultatet. Exempel: replace("Bella Italia", "l", "*") Resultat: 'Be**a Ita*ia' Exempel: replace("Bella Italia", "l", "") Resultat: 'Bea Itaia' |
fn:tokenize(string,pattern) |
Exempel: tokenize("XPath is fun", "\s+") Resultat: ("XPath", "is", "fun") |
Funktioner för anyURI.
Namn | Förklaring |
---|---|
fn:resolve-uri(relative,base) |
Funktioner för booleska värden.
Namn | Förklaring |
---|---|
fn:boolean(arg) | Returnerar den booleska värden för ett tal, en sträng eller en noduppsättning. |
fn:not(arg) |
Först återställs parametern till en boolesk värde genom boolean() -funktionen. Om den booleska värdet är false, returneras true, annars returneras true. Exempel: not(true()) Resultat: false |
fn:true() |
Returnerar den booleska värden true. Exempel: true() Resultat: true |
fn:false() |
Returnerar den booleska värden false. Exempel: false() Resultat: false |
Funktioner för varaktighet, datum och tid.
Funktioner för att extrahera komponenter av datum, tid och varaktighet.
Namn | Förklaring |
---|---|
fn:dateTime(date,time) | Konverterar parametern till ett datum och en tid. |
fn:years-from-duration(datetimedur) | Returnerar det heltal som motsvarar årtalskomponenten av det angivna värdet, representerat med standardvokabulära notation. |
fn:months-from-duration(datetimedur) | Returnerar det heltal som motsvarar månadskomponenten av det angivna värdet, representerat med standardvokabulära notation. |
fn:days-from-duration(datetimedur) | Återger heltal för dagdelens värde för parametern, representerat med standardlexikografisk notation. |
fn:hours-from-duration(datetimedur) | Återger heltal för timdelens värde för parametern, representerat med standardlexikografisk notation. |
fn:minutes-from-duration(datetimedur) | Återger heltal för minutdelens värde för parametern, representerat med standardlexikografisk notation. |
fn:seconds-from-duration(datetimedur) | Återger decimaltalet för minutdelens värde för parametern, representerat med standardlexikografisk notation. |
fn:year-from-dateTime(datetime) |
Återger heltal för årens värde för lokalt värde för parametern. Exempel: year-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) Resultat: 2005 |
fn:month-from-dateTime(datetime) |
Återger heltal för månadens värde för lokalt värde för parametern. Exempel: month-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) Resultat: 01 |
fn:day-from-dateTime(datetime) |
Återger heltal för dagdelens värde för lokalt värde för parametern. Exempel: day-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) Resultat: 10 |
fn:hours-from-dateTime(datetime) |
Återger heltal för timdelens värde för lokalt värde för parametern. Exempel: hours-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) Resultat: 12 |
fn:minutes-from-dateTime(datetime) |
Återger heltal för minutdelens värde för lokalt värde för parametern. Exempel: minutes-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) Resultat: 30 |
fn:seconds-from-dateTime(datetime) |
Återger sekunddelens decimaltal av lokalt värde för parametern. Exempel: seconds-from-dateTime(xs:dateTime("2005-01-10T12:30:00-04:10")) Resultat: 0 |
fn:timezone-from-dateTime(datetime) | Returneras tidszonsdelen av argumentet om den finns. |
fn:year-from-date(date) |
Returneras det heltal som representerar åren i den lokala värdet av argumentet. Exempel: year-from-date(xs:date("2005-04-23")) Resultat: 2005 |
fn:month-from-date(date) |
Returneras det heltal som representerar månaderna i den lokala värdet av argumentet. Exempel: month-from-date(xs:date("2005-04-23")) Resultat: 4 |
fn:day-from-date(date) |
Returneras det heltal som representerar dagarna i den lokala värdet av argumentet. Exempel: day-from-date(xs:date("2005-04-23")) Resultat: 23 |
fn:timezone-from-date(date) | Returneras tidszonsdelen av argumentet om den finns. |
fn:hours-from-time(time) |
Returneras det heltal som representerar timmarna i den lokala värdet av argumentet. Exempel: hours-from-time(xs:time("10:22:00")) Resultat: 10 |
fn:minutes-from-time(time) |
Returneras det heltal som representerar minuterna i den lokala värdet av argumentet. Exempel: minutes-from-time(xs:time("10:22:00")) Resultat: 22 |
fn:seconds-from-time(time) |
Returneras det heltal som representerar sekunderna i den lokala värdet av argumentet. Exempel: seconds-from-time(xs:time("10:22:00")) Resultat: 0 |
fn:timezone-from-time(time) | Returneras tidszonsdelen av argumentet om den finns. |
fn:adjust-dateTime-to-timezone(datetime,timezone) |
Om timezone-argumentet är tomt, returneras dateTime utan tidszon. Annars returneras dateTime med tidszon. |
fn:adjust-date-to-timezone(date,timezone) |
Om timezone-argumentet är tomt, returneras datum utan tidszon. Annars returneras datum med tidszon. |
fn:adjust-time-to-timezone(time,timezone) |
Om timezone-argumentet är tomt, returneras tid utan tidszon. Annars returnerar tiden med tidszon. |
Funktioner relaterade till QNames
Namn | Förklaring |
---|---|
fn:QName() | |
fn:local-name-from-QName() | |
fn:namespace-uri-from-QName() | |
fn:namespace-uri-for-prefix() | |
fn:in-scope-prefixes() | |
fn:resolve-QName() |
Funktioner för noder
Namn | Förklaring |
---|---|
|
Returnerar namnet på den aktuella noden eller den första noden i den angivna nodkombinationen. |
|
Returnerar namnet på den aktuella noden eller den första noden i den angivna nodkombinationen utan namnrymdsprefix. |
|
Returnerar namnrymds URI för den aktuella noden eller den första noden i den angivna nodkombinationen. |
fn:lang(lang) |
Returnerar true om språket för den aktuella noden matchar det specifika språket. Exempel: Lang("en") är sant för <p xml:lang="en">...</p> Exempel: Lang("de") är falskt för <p xml:lang="en">...</p> |
|
Returnerar roten till nodträdet som tillhör den aktuella noden eller den angivna noden. Detta är vanligtvis dokumentnoden. |
Funktioner för sekvenser
Allmän funktion
Namn | Förklaring |
---|---|
fn:index-of((item,item,...),searchitem) |
Returnerar positionen i projektsekvensen där searchitem-argumentet är lika. Exempel: index-of ((15, 40, 25, 40, 10), 40) Resultat: (2, 4) Exempel: index-of (("a", "dog", "and", "a", "duck"), "a") Resultat (1, 4) Exempel: index-of ((15, 40, 25, 40, 10), 18) Resultat: () |
fn:remove((item,item,...),position) |
Returnerar en ny sekvens konstruerad av item-argumentet - och tar bort det element som specificeras av position-argumentet. Exempel: remove(("ab", "cd", "ef"), 0) Resultat: ("ab", "cd", "ef") Exempel: remove(("ab", "cd", "ef"), 1) Resultat: ("cd", "ef") Exempel: remove(("ab", "cd", "ef"), 4) Resultat: ("ab", "cd", "ef") |
fn:empty(item,item,...) |
Om parametervärdet är en tom sekvens, returneras true, annars returneras false. Exempel: empty(remove(("ab", "cd"), 1)) Resultat: false |
fn:exists(item,item,...) |
Om parametervärdet inte är en tom sekvens, returneras true, annars returneras false. Exempel: exists(remove(("ab"), 1)) Resultat: false |
fn:distinct-values((item,item,...),collation) |
Returnerar unika skillnader. Exempel: distinct-values((1, 2, 3, 1, 2)) Resultat: (1, 2, 3) |
fn:insert-before((item,item,...),pos,inserts) |
Returnerar en ny sekvens konstruerad av item-parametern, medan värdet för inserts-parameterns värde infogas vid pos-parameterns specificerade plats. Exempel: insert-before(("ab", "cd"), 0, "gh") Resultat: ("gh", "ab", "cd") Exempel: insert-before(("ab", "cd"), 1, "gh") Resultat: ("gh", "ab", "cd") Exempel: insert-before(("ab", "cd"), 2, "gh") Resultat: ("ab", "gh", "cd") Exempel: insert-before(("ab", "cd"), 5, "gh") Resultat: ("ab", "cd", "gh") |
fn:reverse((item,item,...)) |
Returnerar den omvända ordningen av de specificerade projekten. Exempel: reverse(("ab", "cd", "ef")) Resultat: ("ef", "cd", "ab") Exempel: reverse(("ab")) Resultat: ("ab") |
fn:subsequence((item,item,...),start,len) |
Returnerar projektsekvensen vid startparameterns angivna plats, sekvensens längd specificeras av len-parametern. Den första postens plats är 1. Exempel: subsequence(($item1, $item2, $item3,...), 3) Resultat: ($item3, ...) Exempel: subsequence(($item1, $item2, $item3, ...), 2, 2) Resultat: ($item2, $item3) |
fn:unordered((item,item,...)) | Återger objekten i den av implementeringen bestämda ordningen. |
Funktioner för att testa sekvensens kapacitet
Namn | Förklaring |
---|---|
fn:zero-or-one(item,item,...) | Återger argumentet om det innehåller noll eller ett projekt, annars genererar ett fel. |
fn:one-or-more(item,item,...) | Återger argumentet om det innehåller en eller flera projekt, annars genererar ett fel. |
fn:exactly-one(item,item,...) | Återger argumentet om det innehåller ett projekt, annars genererar ett fel. |
Lika, Union, Intersection och Except
Namn | Förklaring |
---|---|
fn:deep-equal(param1,param2,collation) | Återger true om param1 och param2 är lika (deep-equal), annars återger false. |
Sammanhangsfunktioner
Namn | Förklaring |
---|---|
fn:count((item,item,...)) | Återger antalet noder. |
fn:avg((arg,arg,...)) |
Återger det genomsnittliga värdet av de angivna argumentens värden. Exempel: avg((1,2,3)) Resultat: 2 |
fn:max((arg,arg,...)) |
Återger det värde som är större än de andra argumenten. Exempel: max((1,2,3)) Resultat: 3 Exempel: max(('a', 'k')) Resultat: 'k' |
fn:min((arg,arg,...)) |
Återger det värde som är mindre än de andra argumenten. Exempel: min((1,2,3)) Resultat: 1 Exempel: min(('a', 'k')) Resultat: 'a' |
fn:sum(arg,arg,...) | Återger summan av de numeriska värdena för varje nod i den angivna nodkombinationen. |
Funktioner för att generera sekvenser
Namn | Förklaring |
---|---|
fn:id((string,string,...),node) | Återger en sekvens av elementnoder, där ID-värdet för dessa noder är lika med en eller flera av de värden som anges i string-argumentet. |
fn:idref((string,string,...),node) | Återger en sekvens av element- eller egenskapsnoder, där IDREF-värdet för dessa noder är lika med en eller flera av de värden som anges i string-argumentet. |
fn:doc(URI) | |
fn:doc-available(URI) | Återvänder true om doc()-funktionen returnerar en dokumentnod, annars returnerar den false. |
|
Kontextfunktioner
Namn | Förklaring |
---|---|
fn:position() |
Återvänder index-positionen för den aktuella noden som behandlas. Exempel: //book[position()<=3] Resultat: Väljer de första tre book-elementen |
fn:last() |
Återvänder antalet objekt i den behandlade nodlistan. Exempel: //book[last()] Resultat: Väljer den sista book-elementen |
fn:current-dateTime() | Återvänder den aktuella dateTime (med tidszon). |
fn:current-date() | Återvänder den aktuella datumen (med tidszon). |
fn:current-time() | Återvänder den aktuella tiden (med tidszon). |
fn:implicit-timezone() | Återvänder värdet för den implicita tidszonen. |
fn:default-collation() | Återvänder värdet för den standardjämförelsen. |
fn:static-base-uri() | Återvänder värdet för base-uri. |
XSLT-funktioner
Dessutom finns det följande inbyggda XSLT-funktioner:
Namn | Beskrivning |
---|---|
current() | Återvänder en noduppsättning som innehåller den aktuella noden som enda medlem. |
document() | Används för att komma åt noder i en extern XML-dokument. |
element-available() | Kontrollerar om XSLT-processorn stöder den angivna elementet. |
format-number() | Konverterar ett nummer till en sträng. |
function-available() | Kontrollerar om XSLT-processorn stöder den angivna funktionen. |
generate-id() | Återvänder en unik strängvärde som identifierar den angivna noden. |
key() | Hämtar element som har markerats med <xsl:key> uttrycket. |
node-set | Konverterar träd till en noduppsättning. Den genererade noduppsättningen innehåller alltid en enda nod och är trädets rodnod. |
system-property() | Återvänd värdet för systemegenskapen. |
unparsed-entity-uri() | Återvänd URI för o解析ad entitet. |
- Föregående sida XSLT element
- Nästa sida XML tutorial