XSLT, XPath ja XQuery - funktiot
- Edellinen sivu XSLT-elementit
- Seuraava sivu XML-opastukset
XSLT 2.0, XPath 2.0 ja XQuery 1.0 jakavat saman funktiokirjaston.
Funktioiden viitetietokirja
Funktioiden nimenkutsun oletusprefiksi on:fn:
Funktioiden nimenkutsun URI on:http://www.w3.org/2005/xpath-functions
Vinkki:Yleensä käytetään fn:
Etuliitteellä kutsutaan funktioita, esimerkiksi fn:string()
Kuitenkin, koska fn:
Se on nimenkutsun oletusprefiksi, joten funkti nimiä ei tarvitse lisätä etuliitteenä.
Käsittelytoiminnot
Nimi | Kuvaus |
---|---|
fn:node-name(node) | Palauttaa parametrisolmun solun nimen. |
fn:nilled(node) | Palauttaa totuusarvon, joka kertoo, onko parametrisolmu hylätty. |
fn:data(item.item,...) | Käsittää projektisarjan ja palauttaa atomiarvojen sarjan. |
|
Palauttaa nykyisen tai määritetyn solun base-uri-ominaisuuden arvon. |
fn:document-uri(node) | Palauttaa määritetyn solun document-uri-ominaisuuden arvon. |
Virhe- ja jäljitysfunktiot
Nimi | Kuvaus |
---|---|
|
Esimerkki: error(fn:QName('http://example.com/test', 'err:toohigh'), 'Error: Price is too high') Tulos: Palauttaa ulkoiseen käsittelyympäristöön http://example.com/test#toohigh ja merkkijonon "Error: Price is too high". |
fn:trace(value,label) | Käytetään kyselyjen virheenkorjaukseen. |
Lukuarvojen toimintoja
Nimi | Kuvaus |
---|---|
fn:number(arg) |
Palauttaa parametarin arvon. Parametri voi olla totuusarvo, merkkijono tai solujen joukko. Esimerkki: number('100') Tulos: 100 |
fn:abs(num) |
Palauttaa parametrin absoluuttisen arvon. Esimerkki: abs(3.14) Tulos: 3.14 Esimerkki: abs(-3.14) Tulos: 3.14 |
fn:ceiling(num) |
Palauttaa pienimmän kokonaisluvun, joka on suurempi kuin num parametrin. Esimerkki: ceiling(3.14) Tulos: 4 |
fn:floor(num) |
Palauttaa suurimman kokonaisluvun, joka ei ole suurempi kuin num parametrin. Esimerkki: floor(3.14) Tulos: 3 |
fn:round(num) |
Pyöristää num parametrin lähimmäksi kokonaislukua. Esimerkki: round(3.14) Tulos: 3 |
fn:round-half-to-even() |
Esimerkki: round-half-to-even(0.5) Tulos: 0 Esimerkki: round-half-to-even(1.5) Tulos: 2 Esimerkki: round-half-to-even(2.5) Tulos: 2 |
Merkkijonofunktiot
Nimi | Kuvaus |
---|---|
fn:string(arg) |
Palauttaa parametrin merkkijonon arvon. Parametri voi olla luku, looginen arvo tai solukokoelma. Esimerkki: string(314) Tulos: "314" |
fn:codepoints-to-string(int,int,...) |
Palauttaa merkkikoodeja sarjasta merkkijonon. Esimerkki: codepoints-to-string(84, 104, 233, 114, 232, 115, 101) Tulos: 'Thérèse' |
fn:string-to-codepoints(string) |
Palauttaa merkkijonon merkkikoodeja sarjana. Esimerkki: string-to-codepoints("Thérèse") Tulos: 84, 104, 233, 114, 232, 115, 101 |
fn:codepoint-equal(comp1,comp2) | Jos Unicode-merkistötiheyden mukaan comp1:n arvo on yhtä suuri kuin comp2:n arvo, palauta true. Muussa tapauksessa palauta false. (http://www.w3.org/2005/02/xpath-functions/collation/codepoint). |
|
Jos comp1 on pienempi kuin comp2, palauta -1. Jos comp1 on yhtä suuri kuin comp2, palauta 0. Jos comp1 on suurempi kuin comp2, palauta 1. (Käytetyn vertailusäännön mukaan). Esimerkki: compare('ghi', 'ghi') Tulos: 0 |
fn:concat(string,string,...) |
Palauta merkkijonojen yhdistelmä. Esimerkki: concat('XPath ','is ','FUN!') Tulos: 'XPath is FUN!' |
fn:string-join((string,string,...),sep) |
Käytä sep-parametria erottimena palauttaaksesi merkkijonojen yhdistelmän. Esimerkki: string-join(('We', 'are', 'having', 'fun!'), ' ') Tulos: ' We are having fun! ' Esimerkki: string-join(('We', 'are', 'having', 'fun!')) Tulos: 'Wearehavingfun!' Esimerkki: string-join((), 'sep') Tulos: '' |
|
Palauta alusta start-positioon alkavaan määritettyyn pituuteen asti oleva alimerkkijono. Ensimmäisen merkin indeksi on 1. Jos len-parametria ei ole määritelty, palauta alusta start-positioon merkkijonon loppuun asti oleva alimerkkijono. Esimerkki: substring('Beatles',1,4) Tulos: 'Beat' Esimerkki: substring('Beatles',2) Tulos: 'eatles' |
|
Palauta määritetyn merkkijonon pituus. Jos string-parametria ei ole, palauta nykyisen solmun merkkijonoarvon pituus. Esimerkki: string-length('Beatles') Tulos: 7 |
|
Poista määritetty merkkijonojen alun ja lopun välit, korvaa sisäiset välilyöntijonot yhdellä välilyönnillä ja palauta tulos. Jos string-parametria ei ole, käsittele nykyinen solmu. Esimerkki: normalize-space(' The XML ') Tulos: 'The XML' |
fn:normalize-unicode() | Suorita Unicode-regularisointi. |
fn:upper-case(string) |
Muunna string-parametri isolla kirjaimella. Esimerkki: upper-case('The XML') Tulos: 'THE XML' |
fn:lower-case(string) |
Muunna string-parametri pieniksi kirjaimiksi. Esimerkki: lower-case('The XML') Tulos: 'the xml' |
fn:translate(string1,string2,string3) |
Vaihda string1:ssä oleva string2 string3:ksi. Esimerkki: translate('12:30','30','45') Tulos: '12:45' Esimerkki: translate('12:30','03','54') Tulos: '12:45' Esimerkki: translate('12:30','0123','abcd') Tulos: 'bc:da' |
fn:escape-uri(stringURI,esc-res) |
Esimerkki: escape-uri("http://example.com/test#car", true()) Tulos: "http%3A%2F%2Fexample.com%2Ftest#car" Esimerkki: escape-uri("http://example.com/test#car", false()) Tulos: "http://example.com/test#car" Esimerkki: escape-uri ("http://example.com/~bébé", false()) Tulos: "http://example.com/~b%C3%A9b%C3%A9" |
fn:contains(string1,string2) |
Jos string1 sisältää string2, palauttaa true, muuten false. Esimerkki: contains('XML','XM') Tulos: true |
fn:starts-with(string1,string2) |
Jos string1 alkaa string2:lla, palauttaa true, muuten false. Esimerkki: starts-with('XML','X') Tulos: true |
fn:ends-with(string1,string2) |
Jos string1 päätyy string2:lla, palauttaa true, muuten false. Esimerkki: ends-with('XML','X') Tulos: false |
fn:substring-before(string1,string2) |
Palauttaa merkkijonon string2 esiintymisen ennen string1:n osan. Esimerkki: substring-before('12/10','/') Tulos: '12' |
fn:substring-after(string1,string2) |
Palauttaa string2:n string1:ssä olevan osan, joka on string2:n jälkeen. Esimerkki: substring-after('12/10','/') Tulos: '10' |
fn:matches(string,pattern) |
Jos string-parametri sopii määritettyyn malliin, palauttaa true, muuten palauttaa false. Esimerkki: matches("Merano", "ran") Tulos: true |
fn:replace(string,pattern,replace) |
Määritettyjä malleja korvataan replace-parametrillä ja palautetaan tulos. Esimerkki: replace("Bella Italia", "l", "*") Tulos: 'Be**a Ita*ia' Esimerkki: replace("Bella Italia", "l", "") Tulos: 'Bea Itaia' |
fn:tokenize(string,pattern) |
Esimerkki: tokenize("XPath on fun", "\s+") Tulos: ("XPath", "on", "fun") |
anyURI:lle tarkoitetut funktionaalisuudet
Nimi | Kuvaus |
---|---|
fn:resolve-uri(relative,base) |
Boolean-arvojen funktionaalisuudet
Nimi | Kuvaus |
---|---|
fn:boolean(arg) | Palauttaa numero, merkkijonon tai solujoukon boolean-arvon. |
fn:not(arg) |
Ensiksi palauttaa parametrin boolean-arvoksi boolean()-funktiolla. Jos boolean-arvo on false, palauttaa true, muuten palauttaa true. Esimerkki: not(true()) Tulos: false |
fn:true() |
Palauttaa boolean-arvon true. Esimerkki: true() Tulos: true |
fn:false() |
Palauttaa boolean-arvon false. Esimerkki: false() Tulos: false |
Kesto, päivämäärän ja ajan funktionaalisuudet
Päivämäärän, ajan ja keston komponenttien erottamiseen tarkoitettu funktio
Nimi | Kuvaus |
---|---|
fn:dateTime(date,time) | Muuntaa parametrin päivämääräksi ja ajaksi. |
fn:years-from-duration(datetimedur) | Palauttaa parametin vuosipuolen kokonaislukuksi, joka esitetään standardin mukaisella leksionaalisella muodolla. |
fn:months-from-duration(datetimedur) | Palauttaa parametin kuukausipuolen kokonaislukuksi, joka esitetään standardin mukaisella leksionaalisella muodolla. |
fn:days-from-duration(datetimedur) | Palauttaa parametrin arvon päiväosan kokonaislukuina, käyttäen standardia sanastoa. |
fn:hours-from-duration(datetimedur) | Palauttaa parametrin arvon tunninosan kokonaislukuina, käyttäen standardia sanastoa. |
fn:minutes-from-duration(datetimedur) | Palauttaa parametrin arvon minuuttiosan kokonaislukuina, käyttäen standardia sanastoa. |
fn:seconds-from-duration(datetimedur) | Palauttaa parametrin arvon minuuttiosan desimaalilukuina, käyttäen standardia sanastoa. |
fn:year-from-dateTime(datetime) |
Palauttaa parametrin paikallisen arvon vuosiosan kokonaislukuina. Esimerkki: year-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) Tulos: 2005 |
fn:month-from-dateTime(datetime) |
Palauttaa parametrin paikallisen arvon kuukausiosan kokonaislukuina. Esimerkki: month-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) Tulos: 01 |
fn:day-from-dateTime(datetime) |
Palauttaa parametrin paikallisen arvon päiväosan kokonaislukuina. Esimerkki: day-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) Tulos: 10 |
fn:hours-from-dateTime(datetime) |
Palauttaa parametrin paikallisen arvon tunninosan kokonaislukuina. Esimerkki: hours-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) Tulos: 12 |
fn:minutes-from-dateTime(datetime) |
Palauttaa parametrin paikallisen arvon minuuttiosan kokonaislukuina. Esimerkki: minutes-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) Tulos: 30 |
fn:seconds-from-dateTime(datetime) |
Palauttaa parametrin paikallisen arvon sekuntiosan desimaalilukuina. Esimerkki: seconds-from-dateTime(xs:dateTime("2005-01-10T12:30:00-04:10")) Tulos: 0 |
fn:timezone-from-dateTime(datetime) | Palautetaan parametrin aikavyöhykeosa, jos se on olemassa. |
fn:year-from-date(date) |
Palautetaan parametrin paikallinen arvo, joka edustaa vuotta kokonaislukuna. Esimerkki: year-from-date(xs:date("2005-04-23")) Tulos: 2005 |
fn:month-from-date(date) |
Palautetaan parametrin paikallinen arvo, joka edustaa kuukauden kokonaislukuna. Esimerkki: month-from-date(xs:date("2005-04-23")) Tulos: 4 |
fn:day-from-date(date) |
Palautetaan parametrin paikallinen arvo, joka edustaa päivän kokonaislukuna. Esimerkki: day-from-date(xs:date("2005-04-23")) Tulos: 23 |
fn:timezone-from-date(date) | Palautetaan parametrin aikavyöhykeosa, jos se on olemassa. |
fn:hours-from-time(time) |
Palautetaan parametrin paikallinen arvo, joka edustaa tuntiosaa kokonaislukuna. Esimerkki: hours-from-time(xs:time("10:22:00")) Tulos: 10 |
fn:minutes-from-time(time) |
Palautetaan parametrin paikallinen arvo, joka edustaa minuuttiosaa kokonaislukuna. Esimerkki: minutes-from-time(xs:time("10:22:00")) Tulos: 22 |
fn:seconds-from-time(time) |
Palautetaan parametrin paikallinen arvo, joka edustaa sekuntiosaa kokonaislukuna. Esimerkki: seconds-from-time(xs:time("10:22:00")) Tulos: 0 |
fn:timezone-from-time(time) | Palautetaan parametrin aikavyöhykeosa, jos se on olemassa. |
fn:adjust-dateTime-to-timezone(datetime,timezone) |
Jos timezone-parametri on tyhjä, palautetaan dateTime ilman aikavyöhykettä. Muussa tapauksessa palautetaan aikavyöhykkeellä varustettu dateTime. |
fn:adjust-date-to-timezone(date,timezone) |
Jos timezone-parametri on tyhjä, palautetaan päivämäärä ilman aikavyöhykettä. Muussa tapauksessa palautetaan aikavyöhykkeellä varustettu päivämäärä. |
fn:adjust-time-to-timezone(time,timezone) |
Jos timezone-parametri on tyhjä, palautetaan aika ilman aikavyöhykettä. Muussa tapauksessa palauttaa ajastuksen kanssa varustetun ajan. |
QNamesiin liittyvät funktiot
Nimi | Kuvaus |
---|---|
fn:QName() | |
fn:local-name-from-QName() | |
fn:namespace-uri-from-QName() | |
fn:namespace-uri-for-prefix() | |
fn:in-scope-prefixes() | |
fn:resolve-QName() |
Solmuihin liittyvät funktiot
Nimi | Kuvaus |
---|---|
|
Palauttaa nykyisen solmun nimen tai määritetyn solmun joukon ensimmäisen solmun nimen. |
|
Palauttaa nykyisen solmun nimen tai määritetyn solmun joukon ensimmäisen solmun nimen ilman nimenkalvoa. |
|
Palauttaa nykyisen solmun tai määritetyn solmun joukon ensimmäisen solmun nimenkalvon URI:n. |
fn:lang(lang) |
Jos nykyisen solmun kieli vastaa määritettyä kieltä, palauttaa true. Esimerkki: Lang("en") on true for <p xml:lang="en">...</p> Esimerkki: Lang("de") on false for <p xml:lang="en">...</p> |
|
Palauttaa nykyisen solmun tai määritetyn solmun solmupuun juurisolmun. Tavallisesti on dokumentti-solmu. |
Sarjoihin liittyvät funktiot
Yleinen funktio
Nimi | Kuvaus |
---|---|
fn:index-of((item,item,...),searchitem) |
Palauttaa etsittävässä kohteessa searchitem-argumentin arvoa vastaavan sijainnin. Esimerkki: index-of ((15, 40, 25, 40, 10), 40) Tulos: (2, 4) Esimerkki: index-of (("a", "dog", "and", "a", "duck"), "a") Tulos (1, 4) Esimerkki: index-of ((15, 40, 25, 40, 10), 18) Tulos: () |
fn:remove((item,item,...),position) |
Palauttaa uuden sarjan item-argumentista - poistaa position-argumentilla määritetyn kohteen. Esimerkki: remove(("ab", "cd", "ef"), 0) Tulos: ("ab", "cd", "ef") Esimerkki: remove(("ab", "cd", "ef"), 1) Tulos: ("cd", "ef") Esimerkki: remove(("ab", "cd", "ef"), 4) Tulos: ("ab", "cd", "ef") |
fn:empty(item,item,...) |
Jos parametrin arvo on tyhjä sekvenssi, palauttaa true, muuten palauttaa false. Esimerkki: empty(remove(("ab", "cd"), 1)) Tulos: false |
fn:exists(item,item,...) |
Jos parametrin arvo ei ole tyhjä sekvenssi, palauttaa true, muuten palauttaa false. Esimerkki: exists(remove(("ab"), 1)) Tulos: false |
fn:distinct-values((item,item,...),collation) |
Palauttaa ainutlaatuiset arvot. Esimerkki: distinct-values((1, 2, 3, 1, 2)) Tulos: (1, 2, 3) |
fn:insert-before((item,item,...),pos,inserts) |
Palauttaa uuden sekvenssin item-parametrin avulla - lisätään myös inserts-parametrin arvo pos-parametrin määrittämään sijaintiin. Esimerkki: insert-before(("ab", "cd"), 0, "gh") Tulos: ("gh", "ab", "cd") Esimerkki: insert-before(("ab", "cd"), 1, "gh") Tulos: ("gh", "ab", "cd") Esimerkki: insert-before(("ab", "cd"), 2, "gh") Tulos: ("ab", "gh", "cd") Esimerkki: insert-before(("ab", "cd"), 5, "gh") Tulos: ("ab", "cd", "gh") |
fn:reverse((item,item,...)) |
Palauttaa määritetyn projektin käänteisen järjestyksen. Esimerkki: reverse(("ab", "cd", "ef")) Tulos: ("ef", "cd", "ab") Esimerkki: reverse(("ab")) Tulos: ("ab") |
fn:subsequence((item,item,...),start,len) |
Palauttaa start-parametrin määrittämän sijainnin palauttamaan projekti-sekvenssin, jonka pituus määritetään len-parametrilla. Ensimmäisen projektin sijainti on 1. Esimerkki: subsequence(($item1, $item2, $item3,...), 3) Tulos: ($item3, ...) Esimerkki: subsequence(($item1, $item2, $item3, ...), 2, 2) Tulos: ($item2, $item3) |
fn:unordered((item,item,...)) | Palauttaa kohteet toteutuksista riippuvan järjestyksessä. |
Sarjan kapasiteetin testifunktiot
Nimi | Kuvaus |
---|---|
fn:zero-or-one(item,item,...) | Jos parametrit sisältävät nollan tai yhden kohteen, palauttaa parametrit, muuten luo virheen. |
fn:one-or-more(item,item,...) | Jos parametrit sisältävät yhden tai useamman kohteen, palauttaa parametrit, muuten luo virheen. |
fn:exactly-one(item,item,...) | Jos parametrit sisältävät yhden kohteen, palauttaa parametrit, muuten luo virheen. |
Yhtä, Union, Intersection ja Except
Nimi | Kuvaus |
---|---|
fn:deep-equal(param1,param2,collation) | Jos param1 ja param2 ovat samanarvoisia (deep-equal), palauttaa true, muuten palauttaa false. |
Yhteenlaskufunktiot
Nimi | Kuvaus |
---|---|
fn:count((item,item,...)) | Palauttaa solujen määrän. |
fn:avg((arg,arg,...)) |
Palauttaa parametrien arvojen keskiarvon. Esimerkki: avg((1,2,3)) Tulos: 2 |
fn:max((arg,arg,...)) |
Palauttaa suuremman arvon kuin muut parametrit. Esimerkki: max((1,2,3)) Tulos: 3 Esimerkki: max(('a', 'k')) Tulos: 'k' |
fn:min((arg,arg,...)) |
Palauttaa pienemmän arvon kuin muut parametrit. Esimerkki: min((1,2,3)) Tulos: 1 Esimerkki: min(('a', 'k')) Tulos: 'a' |
fn:sum(arg,arg,...) | Palauttaa määritetyn nodemäärien sarjan jokaisen noden arvon summan. |
Sarjan generoivat funktiot
Nimi | Kuvaus |
---|---|
fn:id((merkkijono, merkkijono, ...), node) | Palauttaa elementtinodemäärien sarjan, joiden ID-arvot ovat yhtä kuin merkkijonoesityksessä määritetyt yksi tai useampi arvo. |
fn:idref((merkkijono, merkkijono, ...), node) | Palauttaa elementti- tai ominaisuusnodemäärien sarjan, joiden IDREF-arvot ovat yhtä kuin merkkijonoesityksessä määritetyt yksi tai useampi arvo. |
fn:doc(URI) | |
fn:doc-available(URI) | Jos doc()-funktio palauttaa dokumenttisolun, palauta true, muuten false. |
|
Kontekstifunktiot
Nimi | Kuvaus |
---|---|
fn:position() |
Palauta käsiteltävän solun index-positio. Esimerkki: //book[position()<=3] Tulos: Valitaan ensimmäiset kolme book-elementtiä |
fn:last() |
Palauta käsiteltävien solujen luettelossa olevien kohteiden määrä. Esimerkki: //book[last()] Tulos: Valitaan viimeinen book-elementti |
fn:current-dateTime() | Palauta nykyinen dateTime (aikavyöhykkeellä). |
fn:current-date() | Palauta nykyinen päivämäärä (aikavyöhykkeellä). |
fn:current-time() | Palauta nykyinen aika (aikavyöhykkeellä). |
fn:implicit-timezone() | Palauta implisiittisen aikavyöhykkeen arvo. |
fn:default-collation() | Palauta oletusvertailun arvo. |
fn:static-base-uri() | Palauta base-uri arvon. |
XSLT-funktiot
Lisäksi, seuraavat sisäänrakennetut XSLT-funktiot ovat käytettävissä:
Nimi | Kuvaus |
---|---|
current() | Palauta nykyinen solu yksinomaisena jäsenenä olevan solujoukon. |
document() | Käytetään ulkoisten XML-dokumenttien solujen saamiseen. |
element-available() | Tarkista, tukeeko XSLT-käsittelijä määritettyä elementtiä. |
format-number() | Muunna numero merkkijonoksi. |
function-available() | Tarkista, tukeeko XSLT-käsittelijä määritettyä funktiota. |
generate-id() | Palauta määritetyn solun ainutlaatuinen tunnisteavain merkkijonona. |
key() | Hae aikaisemmin <xsl:key> lauseella merkityt elementit. |
node-set | Muunna puu solujen joukkoon. Luodut solujoukot sisältävät aina yhden solun ja ovat puun juurisolua. |
system-property() | Palauta järjestelmäominaisuuden arvo. |
unparsed-entity-uri() | Palauta analysoimattoman olion URI. |
- Edellinen sivu XSLT-elementit
- Seuraava sivu XML-opastukset