XSLT, XPath og XQuery funktioner

XSLT 2.0, XPath 2.0 og XQuery 1.0 dele samme funktionbibliotek.

Funktion referencehåndbog

Standardpræfikset for funktionens navngivningsrum er:fn:

URI'en for funktionens navngivningsrum er:http://www.w3.org/2005/xpath-functions

Tip:Bruges normalt fn: præfiks til at kalde funktionen, for eksempel fn:string()Men på grund af fn: Er navngivningsrummets standardpræfiks, således skal præfikset ikke tilføjes til funktionens navn ved kald.

Adgangsfunktioner

Navn Beskrivelse
fn:node-name(node) Returer navnet på den parameternode.
fn:nilled(node) Returer et boolean værdi der angiver om parameternoden afvises.
fn:data(item.item,...) Accepterer en sekvens af elementer og returnerer en sekvens af atomværdier.
  • fn:base-uri()
  • fn:base-uri(node)
Returer værdien af base-uri egenskaben for den aktuelle node eller den angivne node.
fn:document-uri(node) Returer værdien af document-uri egenskaben for den angivne node.

Top

Fejl- og sporingsfunktioner

Navn Beskrivelse
  • fn:error()
  • fn:error(error)
  • fn:error(error,description)
  • fn:error(error,description,error-object)

Eksempel: error(fn:QName('http://example.com/test', 'err:toohigh'), 'Error: Price is too high')

Resultat: Returnerer http://example.com/test#toohigh og strengen "Error: Price is too high" til den eksterne behandle miljø.

fn:trace(value,label) Bruges til at debug forespørgsler

Top

Funktioner relateret til numeriske værdier

Navn Beskrivelse
fn:number(arg)

Returer værdien af parameteren. Parameteren kan være et boolean værdi, en streng eller en nodesæt.

Eksempel: number('100')

Resultat: 100

fn:abs(num)

Returnerer det absolute tal for argumentet.

Eksempel: abs(3.14)

Resultat: 3.14

Eksempel: abs(-3.14)

Resultat: 3.14

fn:ceiling(num)

Returnerer det mindste heltal, der er større end num parameteren.

Eksempel: ceiling(3.14)

Resultat: 4

fn:floor(num)

Returnerer det største heltal, der er mindre end eller lig med num parameteren.

Eksempel: floor(3.14)

Result: 3

fn:round(num)

Runder num parameteren op til det nærmeste heltal.

Eksempel: round(3.14)

Result: 3

fn:round-half-to-even()

Eksempel: round-half-to-even(0.5)

Resultat: 0

Eksempel: round-half-to-even(1.5)

Result: 2

Eksempel: round-half-to-even(2.5)

Result: 2

Top

Funktioner relateret til strenge

Navn Beskrivelse
fn:string(arg)

Returnerer den stævnedetaljerede værdi af argumentet. Argumentet kan være et tal, en logisk værdi eller en nodesæt.

Eksempel: string(314)

Resultat: "314"

fn:codepoints-to-string(int,int,...)

Returnerer streng baseret på kodepunktssekvens.

Eksempel: codepoints-to-string(84, 104, 233, 114, 232, 115, 101)

Resultat: 'Thérèse'

fn:string-to-codepoints(string)

Returnerer kodepunktssekvens baseret på streng.

Eksempel: string-to-codepoints("Thérèse")

Resultat: 84, 104, 233, 114, 232, 115, 101

fn:codepoint-equal(comp1,comp2) Baseret på Unicode kodepunkts sammenligning, returneres true, hvis værdien af comp1 er lig med værdien af comp2. Ellers returneres false. (http://www.w3.org/2005/02/xpath-functions/collation/codepoint).
  • fn:compare(comp1,comp2)
  • fn:compare(comp1,comp2,collation)

Hvis comp1 er mindre end comp2, returneres -1. Hvis comp1 er lig med comp2, returneres 0. Hvis comp1 er større end comp2, returneres 1. (Baseret på den anvendte sammenligningsregel).

Eksempel: compare('ghi', 'ghi')

Resultat: 0

fn:concat(string,string,...)

Returner sammenfletning af strenge.

Eksempel: concat('XPath ','is ','FUN!')

Resultat: 'XPath is FUN!'

fn:string-join((string,string,...),sep)

Brug sep-parametret som adskiller for at returnere en sammenfletet string fra string-argumenterne.

Eksempel: string-join(('We', 'are', 'having', 'fun!'), ' ')

Resultat: ' We are having fun! '

Eksempel: string-join(('We', 'are', 'having', 'fun!'))

Resultat: 'Wearehavingfun!'

Eksempel: string-join((), 'sep')

Resultat: ''

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

Returner en substring med den angivne længde fra start-positionen. Den første characters indeks er 1. Hvis len-parametret udelades, returneres substringen fra position start til slutningen af strengen.

Eksempel: substring('Beatles',1,4)

Resultat: 'Beat'

Eksempel: substring('Beatles',2)

Resultat: 'eatles'

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

Returner længden af den angivne string. Hvis der ikke er angivet string-argument, returneres længden af den aktuelle nodes strings værdi.

Eksempel: string-length('Beatles')

Resultat: 7

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

Fjern de angivne strings begyndelse og slutningens blanke tegn, og erstat alle mellemrumsserier i mellem med et, og returner derefter resultatet. Hvis der ikke er angivet string-argument, behandles den aktuelle node.

Eksempel: normalize-space(' The   XML ')

Resultat: 'The XML'

fn:normalize-unicode() Udfør Unicode-standardisering.
fn:upper-case(string)

Konverter string-argumentet til store bogstaver.

Eksempel: upper-case('The XML')

Resultat: 'THE XML'

fn:lower-case(string)

Convert the string parameter to lowercase.

Eksempel: lower-case('The XML')

Resultat: 'the xml'

fn:translate(string1,string2,string3)

Replace string2 in string1 with string3.

Eksempel: translate('12:30','30','45')

Resultat: '12:45'

Eksempel: translate('12:30','03','54')

Resultat: '12:45'

Eksempel: translate('12:30','0123','abcd')

Resultat: 'bc:da'

fn:escape-uri(stringURI,esc-res)

Eksempel: escape-uri("http://example.com/test#car", true())

Resultat: "http%3A%2F%2Fexample.com%2Ftest#car"

Eksempel: escape-uri("http://example.com/test#car", false())

Resultat: "http://example.com/test#car"

Eksempel: escape-uri ("http://example.com/~bébé", false())

Resultat: "http://example.com/~b%C3%A9b%C3%A9"

fn:contains(string1,string2)

Return true if string1 contains string2, otherwise return false.

Eksempel: contains('XML','XM')

Resultat: true

fn:starts-with(string1,string2)

Return true if string1 starts with string2, otherwise return false.

Eksempel: starts-with('XML','X')

Resultat: true

fn:ends-with(string1,string2)

Return true if string1 ends with string2, otherwise return false.

Eksempel: ends-with('XML','X')

Resultat: false

fn:substring-before(string1,string2)

Return the substring before the occurrence of string2 in string1.

Eksempel: substring-before('12/10','/')

Resultat: '12'

fn:substring-after(string1,string2)

Returnerer den del af string2, der optræder efter string1.

Eksempel: substring-after('12/10','/')

Resultat: '10'

fn:matches(string,pattern)

Returnerer true, hvis string parameteren matcher den angivne mønster, ellers returnerer den false.

Eksempel: matches("Merano", "ran")

Resultat: true

fn:replace(string,pattern,replace)

Erstatter den angivne mønster med replace parameter og returnerer resultatet.

Eksempel: replace("Bella Italia", "l", "*")

Resultat: 'Be**a Ita*ia'

Eksempel: replace("Bella Italia", "l", "")

Resultat: 'Bea Itaia'

fn:tokenize(string,pattern)

Eksempel: tokenize("XPath is fun", "\s+")

Resultat: ("XPath", "is", "fun")

Top

Funktioner relateret til anyURI.

Navn Beskrivelse
fn:resolve-uri(relative,base)  

Top

Funktioner relateret til booleanske værdier.

Navn Beskrivelse
fn:boolean(arg) Returnerer den booleanske værdi for et tal, en streng eller en nodemængde.
fn:not(arg)

Først gendannes parameteren til en booleansk værdi ved hjælp af boolean() funktionen.

Returnerer true, hvis den booleanske værdi er false, ellers returnerer den true.

Eksempel: not(true())

Resultat: false

fn:true()

Returnerer den booleanske værdi true.

Eksempel: true()

Resultat: true

fn:false()

Returnerer den booleanske værdi false.

Eksempel: false()

Resultat: false

Top

Funktioner relateret til varighed, dato og tid.

Funktion til at extrahere komponenter af dato, tid og varighed.

Navn Beskrivelse
fn:dateTime(date,time) Konverterer parameteren til dato og tid.
fn:years-from-duration(datetimedur) Returnerer det hele tal for årgangsdelen af parameterens værdi, angivet ved standardordforråd.
fn:months-from-duration(datetimedur) Returnerer det hele tal for månedsdelen af parameterens værdi, angivet ved standardordforråd.
fn:days-from-duration(datetimedur) Returnerer værdiens dagdel som heltal, repræsenteret ved standardvokabular.
fn:hours-from-duration(datetimedur) Returnerer værdiens timesdel som heltal, repræsenteret ved standardvokabular.
fn:minutes-from-duration(datetimedur) Returnerer værdiens minutdel som heltal, repræsenteret ved standardvokabular.
fn:seconds-from-duration(datetimedur) Returnerer værdiens minutdel som decimaltal, repræsenteret ved standardvokabular.
fn:year-from-dateTime(datetime)

Returnerer den lokale værdi af årtalsdel som heltal.

Eksempel: year-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10"))

Resultat: 2005

fn:month-from-dateTime(datetime)

Returnerer den lokale værdi af måneddel som heltal.

Eksempel: month-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10"))

Resultat: 01

fn:day-from-dateTime(datetime)

Returnerer den lokale værdi af dagdel som heltal.

Eksempel: day-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10"))

Resultat: 10

fn:hours-from-dateTime(datetime)

Returnerer den lokale værdi af timesdel som heltal.

Eksempel: hours-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10"))

Resultat: 12

fn:minutes-from-dateTime(datetime)

Returnerer den lokale værdi af minutdel som heltal.

Eksempel: minutes-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10"))

Resultat: 30

fn:seconds-from-dateTime(datetime)

Returnerer den lokale værdi af sekunddel som decimaltal.

Eksempel: seconds-from-dateTime(xs:dateTime("2005-01-10T12:30:00-04:10"))

Resultat: 0

fn:timezone-from-dateTime(datetime) Returnerer parameterens tidszonestykkel, hvis den eksisterer.
fn:year-from-date(date)

Returnerer det heltal, der repræsenterer årtalsdelene i parameterens lokale værdi.

Eksempel: year-from-date(xs:date("2005-04-23"))

Resultat: 2005

fn:month-from-date(date)

Returnerer det heltal, der repræsenterer månedsdelene i parameterens lokale værdi.

Eksempel: month-from-date(xs:date("2005-04-23"))

Resultat: 4

fn:day-from-date(date)

Returnerer det heltal, der repræsenterer dagedelene i parameterens lokale værdi.

Eksempel: day-from-date(xs:date("2005-04-23"))

Resultat: 23

fn:timezone-from-date(date) Returnerer parameterens tidszonestykkel, hvis den eksisterer.
fn:hours-from-time(time)

Returnerer det heltal, der repræsenterer timesdelene i parameterens lokale værdi.

Eksempel: hours-from-time(xs:time("10:22:00"))

Resultat: 10

fn:minutes-from-time(time)

Returnerer det heltal, der repræsenterer minutdelene i parameterens lokale værdi.

Eksempel: minutes-from-time(xs:time("10:22:00"))

Resultat: 22

fn:seconds-from-time(time)

Returnerer det heltal, der repræsenterer sekunddelene i parameterens lokale værdi.

Eksempel: seconds-from-time(xs:time("10:22:00"))

Resultat: 0

fn:timezone-from-time(time) Returnerer parameterens tidszonestykkel, hvis den eksisterer.
fn:adjust-dateTime-to-timezone(datetime,timezone)

Hvis timezone-argumentet er tomt, returneres dateTime uden tidszone.

Ellers returneres dateTime med tidszone.

fn:adjust-date-to-timezone(date,timezone)

Hvis timezone-argumentet er tomt, returneres date uden tidszone.

Ellers returneres date med tidszone.

fn:adjust-time-to-timezone(time,timezone)

Hvis timezone-argumentet er tomt, returneres time uden tidszone.

Hvis ikke, returnerer time med tidszone.

Top

Funktioner relateret til QNames

Navn Beskrivelse
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 relateret til node

Navn Beskrivelse
  • fn:name()
  • fn:name(nodeset)
Returnerer navnet på den aktuelle node eller den første node i den angivne node samling.
  • fn:local-name()
  • fn:local-name(nodeset)
Returnerer navnet på den aktuelle node eller den første node i den angivne node samling - uden namespace præfiks.
  • fn:namespace-uri()
  • fn:namespace-uri(nodeset)
Returnerer namespace URI for den aktuelle node eller den første node i den angivne node samling.
fn:lang(lang)

Returnerer true, hvis sprog for den aktuelle node matcher det angivne sprog.

Eksempel: Lang("en") er true for <p xml:lang="en">...</p>

Eksempel: Lang("de") er false for <p xml:lang="en">...</p>

  • fn:root()
  • fn:root(node)
Returnerer rodnoden for den node træ, som den aktuelle node eller den angivne node tilhører. Det er normalt et dokumentnode.

Top

Funktioner relateret til sekvenser

Generelle funktioner

Navn Beskrivelse
fn:index-of((item,item,...),searchitem)

Returnerer positionen af elementet i elementsekvensen, der er lig searchitem parameteren.

Eksempel: index-of ((15, 40, 25, 40, 10), 40)

Resultat: (2, 4)

Eksempel: index-of (("a", "dog", "and", "a", "duck"), "a")

Resultat (1, 4)

Eksempel: index-of ((15, 40, 25, 40, 10), 18)

Resultat: ()

fn:remove((item,item,...),position)

Returnerer en ny sekvens konstrueret af item parameter - og sletter elementet på position parameter angivet.

Eksempel: remove(("ab", "cd", "ef"), 0)

Resultat: ("ab", "cd", "ef")

Eksempel: remove(("ab", "cd", "ef"), 1)

Resultat: ("cd", "ef")

Eksempel: remove(("ab", "cd", "ef"), 4)

Resultat: ("ab", "cd", "ef")

fn:empty(item,item,...)

Returnerer true, hvis parameterværdien er en tom sekvens, ellers returnerer den false.

Eksempel: empty(remove(("ab", "cd"), 1))

Resultat: false

fn:exists(item,item,...)

Returnerer true, hvis parameterværdien ikke er en tom sekvens, ellers returnerer den false.

Eksempel: exists(remove(("ab"), 1))

Resultat: false

fn:distinct-values((item,item,...),collation)

Returnerer unikke værdier.

Eksempel: distinct-values((1, 2, 3, 1, 2))

Resultat: (1, 2, 3)

fn:insert-before((item,item,...),pos,inserts)

Returnerer en ny sekvens konstrueret af item parameteren - og indsætter værdien af inserts parameteren på den position specificeret af pos parameteren.

Eksempel: insert-before(("ab", "cd"), 0, "gh")

Resultat: ("gh", "ab", "cd")

Eksempel: insert-before(("ab", "cd"), 1, "gh")

Resultat: ("gh", "ab", "cd")

Eksempel: insert-before(("ab", "cd"), 2, "gh")

Resultat: ("ab", "gh", "cd")

Eksempel: insert-before(("ab", "cd"), 5, "gh")

Resultat: ("ab", "cd", "gh")

fn:reverse((item,item,...))

Returnerer den omvendte rækkefølge af de specificerede projekter.

Eksempel: reverse(("ab", "cd", "ef"))

Resultat: ("ef", "cd", "ab")

Eksempel: reverse(("ab"))

Resultat: ("ab")

fn:subsequence((item,item,...),start,len)

Returnerer projektsekvensen ved hjælp af start parameteren, længden af sekvensen bestemmes af len parameteren.

Den første position er 1.

Eksempel: subsequence(($item1, $item2, $item3,...), 3)

Result: ($item3, ...)

Example: subsequence(($item1, $item2, $item3, ...), 2, 2)

Result: ($item2, $item3)

fn:unordered((item,item,...)) Return items in the order determined by the implementation.

Function to test the capacity of a sequence

Navn Beskrivelse
fn:zero-or-one(item,item,...) Return the parameter if it contains zero or one item, otherwise generate an error.
fn:one-or-more(item,item,...) Return the parameter if it contains one or more items, otherwise generate an error.
fn:exactly-one(item,item,...) Return the parameter if it contains one item, otherwise generate an error.

Equals, Union, Intersection and Except

Navn Beskrivelse
fn:deep-equal(param1,param2,collation) Return true if param1 and param2 are equal to each other (deep-equal), otherwise return false.

Aggregate functions

Navn Beskrivelse
fn:count((item,item,...)) Return the number of nodes.
fn:avg((arg,arg,...))

Return the average of the parameter values.

Example: avg((1,2,3))

Result: 2

fn:max((arg,arg,...))

Return the parameter that is greater than the other parameters.

Example: max((1,2,3))

Result: 3

Example: max(('a', 'k'))

Result: 'k'

fn:min((arg,arg,...))

Return the parameter that is less than the other parameters.

Example: min((1,2,3))

Result: 1

Example: min(('a', 'k'))

Result: 'a'

fn:sum(arg,arg,...) Return the sum of the numeric values of each node in the specified node set.

Function to generate sequences

Navn Beskrivelse
fn:id((string,string,...),node) Return a sequence of element nodes whose ID attribute values are equal to one or more of the values specified in the string parameter.
fn:idref((string,string,...),node) Return a sequence of element or attribute nodes whose IDREF attribute values are equal to one or more of the values specified in the string parameter.
fn:doc(URI)  
fn:doc-available(URI) Returnerer true, hvis doc() funktionen returnerer en dokumentnode, ellers returnerer den false.
  • fn:collection()
  • fn:collection(string)
 

Top

Kontekstfunktioner

Navn Beskrivelse
fn:position()

Returnerer index-positionen for den node, der aktuelt behandles.

Eksempel: //book[position()<=3]

Resultat: Vælg de første tre book elementer

fn:last()

Returnerer antallet af elementer i den behandlede nodeliste.

Eksempel: //book[last()]

Resultat: Vælg den sidste book element

fn:current-dateTime() Returnerer den aktuelle dateTime (med tidszone).
fn:current-date() Returnerer den aktuelle dato (med tidszone).
fn:current-time() Returnerer den aktuelle tid (med tidszone).
fn:implicit-timezone() Returnerer værdien af den implicerede tidszone.
fn:default-collation() Returnerer værdien af standard sammenligning.
fn:static-base-uri() Returnerer værdien af base-uri.

Top

XSLT funktioner

Derudover er der følgende indbyggede XSLT funktioner:

Navn Beskrivelse
current() Returnerer en nodesæt, der indeholder den aktuelle node som den eneste medlem.
document() Bruges til at få adgang til noder i eksterne XML-dokumenter.
element-available() Kontrollerer om XSLT processor understøtter den angivne element.
format-number() Konverterer tallet til en streng.
function-available() Kontrollerer om XSLT processor understøtter den angivne funktion.
generate-id() Returnerer en unik strengværdi, der identificerer den angivne node.
key() Indhenter elementer, der tidligere er markeret med <xsl:key> sætningen.
node-set Konverterer træet til en nodesæt. Den genererede nodesæt indeholder altid en enkelt node og er rodnoden i træet.
system-property() Returner værdien af systemegenskaber.
unparsed-entity-uri() Returner URI for ufortolkede entiteter.

Top