XSLT, XPath og XQuery funktioner
- Forrige side XSLT elementer
- Næste side XML undervisning
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. |
|
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. |
Fejl- og sporingsfunktioner
Navn | Beskrivelse |
---|---|
|
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 |
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 |
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). |
|
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: '' |
|
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' |
|
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 |
|
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") |
Funktioner relateret til anyURI.
Navn | Beskrivelse |
---|---|
fn:resolve-uri(relative,base) |
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 |
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. |
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() |
Funktioner relateret til node
Navn | Beskrivelse |
---|---|
|
Returnerer navnet på den aktuelle node eller den første node i den angivne node samling. |
|
Returnerer navnet på den aktuelle node eller den første node i den angivne node samling - uden namespace præfiks. |
|
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> |
|
Returnerer rodnoden for den node træ, som den aktuelle node eller den angivne node tilhører. Det er normalt et dokumentnode. |
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. |
|
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. |
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. |
- Forrige side XSLT elementer
- Næste side XML undervisning