XSLT, XPath och XQuery funktioner

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.
  • fn:base-uri()
  • fn:base-uri(node)
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.

Top

Error and trace functions

Namn Förklaring
  • fn:error()
  • fn:error(error)
  • fn:error(error,description)
  • fn:error(error,description,error-object)

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.

Top

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

Top

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).
  • fn:compare(comp1,comp2)
  • fn:compare(comp1,comp2,collation)

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: ''

  • fn:substring(string,start,len)
  • fn:substring(string,start)

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'

  • fn:string-length(string)
  • fn:string-length()

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

  • fn:normalize-space(string)
  • fn:normalize-space()

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")

Top

Funktioner för anyURI.

Namn Förklaring
fn:resolve-uri(relative,base)  

Top

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

Top

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.

Top

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()  

Top

Funktioner för noder

Namn Förklaring
  • fn:name()
  • fn:name(nodeset)
Returnerar namnet på den aktuella noden eller den första noden i den angivna nodkombinationen.
  • fn:local-name()
  • fn:local-name(nodeset)
Returnerar namnet på den aktuella noden eller den första noden i den angivna nodkombinationen utan namnrymdsprefix.
  • fn:namespace-uri()
  • fn:namespace-uri(nodeset)
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>

  • fn:root()
  • fn:root(node)
Returnerar roten till nodträdet som tillhör den aktuella noden eller den angivna noden. Detta är vanligtvis dokumentnoden.

Top

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.
  • fn:collection()
  • fn:collection(string)
 

Top

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.

Top

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.

Top