Funzioni XSLT, XPath e XQuery
- Pagina precedente Elementi XSLT
- Pagina successiva Tutorial XML
XSLT 2.0, XPath 2.0 e XQuery 1.0 condividono la stessa libreria di funzioni.
Manuale di riferimento delle funzioni
Il prefisso predefinito del namespace delle funzioni è:fn:
L'URI del namespace delle funzioni è:http://www.w3.org/2005/xpath-functions
Suggerimento:Di solito si utilizza fn:
Usare il prefisso per chiamare la funzione, ad esempio fn:string()
Tuttavia, a causa di fn:
È il prefisso di namespace predefinito, quindi non è necessario aggiungere il prefisso al nome della funzione durante la chiamata.
Funzioni di accesso
Nome | Spiegazione |
---|---|
fn:node-name(node) | Restituisce il nome del nodo del parametro. |
fn:nilled(node) | Restituisce un valore booleano che indica se il nodo del parametro è rifiutato. |
fn:data(item.item,...) | Accetta una sequenza di elementi e restituisce una sequenza di valori atomici. |
|
Restituisce il valore dell'attributo base-uri del nodo corrente o del nodo specificato. |
fn:document-uri(node) | Restituisce il valore dell'attributo document-uri del nodo specificato. |
Funzioni di errore e tracciamento
Nome | Spiegazione |
---|---|
|
Esempio: error(fn:QName('http://example.com/test', 'err:toohigh'), 'Error: Prezzo troppo alto') Risultato: restituisce all'ambiente di elaborazione esterno http://example.com/test#toohigh e la stringa "Error: Prezzo troppo alto". |
fn:trace(value,label) | Usato per debug delle query |
Funzioni relative ai numeri
Nome | Spiegazione |
---|---|
fn:number(arg) |
Restituisce il valore del parametro. Il parametro può essere un valore booleano, una stringa o un insieme di nodi. Esempio: number('100') Risultato: 100 |
fn:abs(num) |
Restituisce il valore assoluto del parametro. Esempio: abs(3.14) Risultato: 3.14 Esempio: abs(-3.14) Risultato: 3.14 |
fn:ceiling(num) |
Restituisce il numero intero minimo maggiore del parametro num. Esempio: ceiling(3.14) Risultato: 4 |
fn:floor(num) |
Restituisce il numero intero massimo non superiore al parametro num. Esempio: floor(3.14) Risultato: 3 |
fn:round(num) |
Arrotonda il parametro num al numero intero più vicino. Esempio: round(3.14) Risultato: 3 |
fn:round-half-to-even() |
Esempio: round-half-to-even(0.5) Risultato: 0 Esempio: round-half-to-even(1.5) Risultato: 2 Esempio: round-half-to-even(2.5) Risultato: 2 |
Funzioni di stringa
Nome | Spiegazione |
---|---|
fn:string(arg) |
Restituisce il valore di stringa dell'argomento. Gli argomenti possono essere numeri, valori logici o insiemi di nodi. Esempio: string(314) Risultato: "314" |
fn:codepoints-to-string(int,int,...) |
Restituisce una stringa da una sequenza di codici Unicode. Esempio: codepoints-to-string(84, 104, 233, 114, 232, 115, 101) Risultato: 'Thérèse' |
fn:string-to-codepoints(string) |
Restituisce una sequenza di codici Unicode da una stringa. Esempio: string-to-codepoints("Thérèse") Risultato: 84, 104, 233, 114, 232, 115, 101 |
fn:codepoint-equal(comp1,comp2) | Secondo la collazione dei codici Unicode, se il valore di comp1 è uguale al valore di comp2, restituisce true (http://www.w3.org/2005/02/xpath-functions/collation/codepoint), altrimenti restituisce false. |
|
Se comp1 è minore di comp2, restituisce -1. Se comp1 è uguale a comp2, restituisce 0. Se comp1 è maggiore di comp2, restituisce 1 (in base alle regole di collazione utilizzate). Esempio: compare('ghi', 'ghi') Risultato: 0 |
fn:concat(string,string,...) |
Restituisci la concatenazione delle stringhe. Esempio: concat('XPath ','is ','FUN!') Risultato: 'XPath is FUN!' |
fn:string-join((string,string,...),sep) |
Usa il parametro sep come separatore per restituire la stringa concatenata dei parametri string. Esempio: string-join(('We', 'are', 'having', 'fun!'), ' ') Risultato: ' We are having fun! ' Esempio: string-join(('We', 'are', 'having', 'fun!')) Risultato: 'Wearehavingfun!' Esempio: string-join((), 'sep') Risultato: '' |
|
Restituisci la sottostringa specificata di lunghezza specificata a partire dalla posizione start. L'indice del primo carattere è 1. Se viene omesso il parametro len, viene restituita la sottostringa da start alla fine della stringa. Esempio: substring('Beatles',1,4) Risultato: 'Beat' Esempio: substring('Beatles',2) Risultato: 'eatles' |
|
Restituisci la lunghezza della stringa specificata. Se non viene fornito il parametro string, restituisci la lunghezza del valore stringa del nodo corrente. Esempio: string-length('Beatles') Risultato: 7 |
|
Elimina gli spazi iniziali e finali della stringa specificata e sostituisci tutte le sequenze di spazi interni con un singolo spazio, quindi restituisci il risultato. Se non viene fornito il parametro string, viene trattato il nodo corrente. Esempio: normalize-space(' The XML ') Risultato: 'The XML' |
fn:normalize-unicode() | Esegui la normalizzazione Unicode. |
fn:upper-case(string) |
Converti il parametro string in maiuscolo. Esempio: upper-case('The XML') Risultato: 'THE XML' |
fn:lower-case(string) |
Converti il parametro string in minuscolo. Esempio: lower-case('The XML') Risultato: 'the xml' |
fn:translate(string1,string2,string3) |
Sostituisci string2 in string1 con string3. Esempio: translate('12:30','30','45') Risultato: '12:45' Esempio: translate('12:30','03','54') Risultato: '12:45' Esempio: translate('12:30','0123','abcd') Risultato: 'bc:da' |
fn:escape-uri(stringURI,esc-res) |
Esempio: escape-uri("http://example.com/test#car", true()) Risultato: "http%3A%2F%2Fexample.com%2Ftest#car" Esempio: escape-uri("http://example.com/test#car", false()) Risultato: "http://example.com/test#car" Esempio: escape-uri ("http://example.com/~bébé", false()) Risultato: "http://example.com/~b%C3%A9b%C3%A9" |
fn:contains(string1,string2) |
Se string1 contiene string2, restituisce true, altrimenti restituisce false. Esempio: contains('XML','XM') Risultato: true |
fn:starts-with(string1,string2) |
Se string1 inizia con string2, restituisce true, altrimenti restituisce false. Esempio: starts-with('XML','X') Risultato: true |
fn:ends-with(string1,string2) |
Se string1 termina con string2, restituisce true, altrimenti restituisce false. Esempio: ends-with('XML','X') Risultato: false |
fn:substring-before(string1,string2) |
Restituisce la sottostringa antecedente a string2 all'interno di string1. Esempio: substring-before('12/10','/') Risultato: '12' |
fn:substring-after(string1,string2) |
Restituisce la substrings successiva a string2 in string1. Esempio: substring-after('12/10','/') Risultato: '10' |
fn:matches(string,pattern) |
Restituisce true se la stringa parametrica corrisponde al modello specificato, altrimenti restituisce false. Esempio: matches("Merano", "ran") Risultato: true |
fn:replace(string,pattern,replace) |
Sostituisci il modello specificato con il parametro replace e restituisci il risultato. Esempio: replace("Bella Italia", "l", "*") Risultato: 'Be**a Ita*ia' Esempio: replace("Bella Italia", "l", "") Risultato: 'Bea Itaia' |
fn:tokenize(string,pattern) |
Esempio: tokenize("XPath is fun", "\s+") Risultato: ("XPath", "is", "fun") |
Funzioni per anyURI.
Nome | Spiegazione |
---|---|
fn:resolve-uri(relative,base) |
Funzioni relative ai valori booleani.
Nome | Spiegazione |
---|---|
fn:boolean(arg) | Restituisce il valore booleano di un numero, una stringa o un insieme di nodi. |
fn:not(arg) |
Prima di tutto, riporta il parametro a un valore booleano utilizzando la funzione boolean(). Restituisce true se il valore booleano è false, altrimenti restituisce true. Esempio: not(true()) Risultato: false |
fn:true() |
Restituisce il valore booleano true. Esempio: true() Risultato: true |
fn:false() |
Restituisce il valore booleano false. Esempio: false() Risultato: false |
Funzioni relative alla durata, data e ora.
Funzione di estrazione dei componenti di data, ora e durata.
Nome | Spiegazione |
---|---|
fn:dateTime(date,time) | Converti il parametro in data e ora. |
fn:years-from-duration(datetimedur) | Restituisce l'intero parte dell'anno del valore del parametro, espresso secondo la notazione lessicale standard. |
fn:months-from-duration(datetimedur) | Restituisce l'intero parte del mese del valore del parametro, espresso secondo la notazione lessicale standard. |
fn:days-from-duration(datetimedur) | Restituisce l'intero della parte giornaliera del valore, espresso con la notazione lessicale standard. |
fn:hours-from-duration(datetimedur) | Restituisce l'intero della parte oraria del valore, espresso con la notazione lessicale standard. |
fn:minutes-from-duration(datetimedur) | Restituisce l'intero della parte minütiva del valore, espresso con la notazione lessicale standard. |
fn:seconds-from-duration(datetimedur) | Restituisce il numero decimale della parte minütiva del valore, espresso con la notazione lessicale standard. |
fn:year-from-dateTime(datetime) |
Restituisce l'intero della parte annuale del valore locale del parametro. Esempio: year-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) Risultato: 2005 |
fn:month-from-dateTime(datetime) |
Restituisce l'intero della parte mensile del valore locale del parametro. Esempio: month-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) Risultato: 01 |
fn:day-from-dateTime(datetime) |
Restituisce l'intero della parte giornaliera del valore locale del parametro. Esempio: day-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) Risultato: 10 |
fn:hours-from-dateTime(datetime) |
Restituisce l'intero della parte oraria del valore locale del parametro. Esempio: hours-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) Risultato: 12 |
fn:minutes-from-dateTime(datetime) |
Restituisce l'intero della parte minütiva del valore locale del parametro. Esempio: minutes-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) Risultato: 30 |
fn:seconds-from-dateTime(datetime) |
Restituisce il numero decimale della parte secondaria del valore locale del parametro. Esempio: seconds-from-dateTime(xs:dateTime("2005-01-10T12:30:00-04:10")) Risultato: 0 |
fn:timezone-from-dateTime(datetime) | Restituisce la parte di fuso orario del parametro, se esiste. |
fn:year-from-date(date) |
Restituisce l'intero parte anni del valore locale del parametro. Esempio: year-from-date(xs:date("2005-04-23")) Risultato: 2005 |
fn:month-from-date(date) |
Restituisce l'intero parte mesi del valore locale del parametro. Esempio: month-from-date(xs:date("2005-04-23")) Risultato: 4 |
fn:day-from-date(date) |
Restituisce l'intero parte giorni del valore locale del parametro. Esempio: day-from-date(xs:date("2005-04-23")) Risultato: 23 |
fn:timezone-from-date(date) | Restituisce la parte di fuso orario del parametro, se esiste. |
fn:hours-from-time(time) |
Restituisce l'intero parte ore del valore locale del parametro. Esempio: hours-from-time(xs:time("10:22:00")) Risultato: 10 |
fn:minutes-from-time(time) |
Restituisce l'intero parte minuti del valore locale del parametro. Esempio: minutes-from-time(xs:time("10:22:00")) Risultato: 22 |
fn:seconds-from-time(time) |
Restituisce l'intero parte secondi del valore locale del parametro. Esempio: seconds-from-time(xs:time("10:22:00")) Risultato: 0 |
fn:timezone-from-time(time) | Restituisce la parte di fuso orario del parametro, se esiste. |
fn:adjust-dateTime-to-timezone(datetime,timezone) |
Se il parametro timezone è vuoto, viene restituito il dateTime senza fuso orario. Altrimenti viene restituito il dateTime con fuso orario. |
fn:adjust-date-to-timezone(date,timezone) |
Se il parametro timezone è vuoto, viene restituito la data senza fuso orario. Altrimenti viene restituito la data con fuso orario. |
fn:adjust-time-to-timezone(time,timezone) |
Se il parametro timezone è vuoto, viene restituito il time senza fuso orario. Altrimenti restituisce il tempo con il fuso orario. |
Funzioni relative ai QNames
Nome | Spiegazione |
---|---|
fn:QName() | |
fn:local-name-from-QName() | |
fn:namespace-uri-from-QName() | |
fn:namespace-uri-for-prefix() | |
fn:in-scope-prefixes() | |
fn:resolve-QName() |
Funzioni relative ai nodi
Nome | Spiegazione |
---|---|
|
Restituisce il nome del nodo corrente o del primo nodo del set di nodi specificato. |
|
Restituisce il nome del nodo corrente o del primo nodo del set di nodi specificato - senza prefisso di spazio dei nomi. |
|
Restituisce l'URI dello spazio dei nomi del nodo corrente o del primo nodo del set di nodi specificato. |
fn:lang(lang) |
Restituisce true se il linguaggio del nodo corrente corrisponde al linguaggio specificato. Esempio: Lang("en") è true per <p xml:lang="en">...</p> Esempio: Lang("de") è false per <p xml:lang="en">...</p> |
|
Restituisce il nodo radice del albero di nodi del nodo corrente o del nodo specificato. Di solito è il nodo documento. |
Funzioni relative alle sequenze
Funzione generale
Nome | Spiegazione |
---|---|
fn:index-of((item,item,...),searchitem) |
Restituisce la posizione dell'elemento nella sequenza di elementi uguale al parametro searchitem. Esempio: index-of ((15, 40, 25, 40, 10), 40) Risultato: (2, 4) Esempio: index-of (("a", "dog", "and", "a", "duck"), "a") Risultato (1, 4) Esempio: index-of ((15, 40, 25, 40, 10), 18) Risultato: () |
fn:remove((item,item,...),position) |
Restituisce una nuova sequenza costruita dal parametro item - contemporaneamente elimina l'elemento specificato dal parametro posizione. Esempio: remove(("ab", "cd", "ef"), 0) Risultato: ("ab", "cd", "ef") Esempio: remove(("ab", "cd", "ef"), 1) Risultato: ("cd", "ef") Esempio: remove(("ab", "cd", "ef"), 4) Risultato: ("ab", "cd", "ef") |
fn:empty(item,item,...) |
Restituisce true se il valore del parametro è una sequenza vuota, altrimenti restituisce false. Esempio: empty(remove(("ab", "cd"), 1)) Risultato: false |
fn:exists(item,item,...) |
Restituisce true se il valore del parametro non è una sequenza vuota, altrimenti restituisce false. Esempio: exists(remove(("ab"), 1)) Risultato: false |
fn:distinct-values((item,item,...),collation) |
Restituisce i valori unici. Esempio: distinct-values((1, 2, 3, 1, 2)) Risultato: (1, 2, 3) |
fn:insert-before((item,item,...),pos,inserts) |
Restituisce una nuova sequenza costruita dal parametro item, inserendo il valore di inserts nella posizione specificata da pos. Esempio: insert-before(("ab", "cd"), 0, "gh") Risultato: ("gh", "ab", "cd") Esempio: insert-before(("ab", "cd"), 1, "gh") Risultato: ("gh", "ab", "cd") Esempio: insert-before(("ab", "cd"), 2, "gh") Risultato: ("ab", "gh", "cd") Esempio: insert-before(("ab", "cd"), 5, "gh") Risultato: ("ab", "cd", "gh") |
fn:reverse((item,item,...)) |
Restituisce l'ordine inverso degli elementi specificati. Esempio: reverse(("ab", "cd", "ef")) Risultato: ("ef", "cd", "ab") Esempio: reverse(("ab")) Risultato: ("ab") |
fn:subsequence((item,item,...),start,len) |
Restituisce la sequenza di elementi specificata da start e la lunghezza specificata da len. La posizione del primo elemento è 1. Esempio: subsequence(($item1, $item2, $item3,...), 3) Risultato: ($item3, ...) Esempio: subsequence(($item1, $item2, $item3, ...), 2, 2) Risultato: ($item2, $item3) |
fn:unordered((item,item,...)) | Restituisce gli elementi in un ordine determinato dall'implementazione. |
Funzione di test della capacità della sequenza
Nome | Spiegazione |
---|---|
fn:zero-or-one(item,item,...) | Restituisce il parametro se contiene zero o un progetto, altrimenti genera un errore. |
fn:one-or-more(item,item,...) | Restituisce il parametro se contiene uno o più progetti, altrimenti genera un errore. |
fn:exactly-one(item,item,...) | Restituisce il parametro se contiene un progetto, altrimenti genera un errore. |
Equals, Union, Intersection and Except
Nome | Spiegazione |
---|---|
fn:deep-equal(param1,param2,collation) | Restituisce true se param1 e param2 sono uguali (deep-equal), altrimenti restituisce false. |
Funzione di conteggio
Nome | Spiegazione |
---|---|
fn:count((item,item,...)) | Ritorna il numero di nodi. |
fn:avg((arg,arg,...)) |
Ritorna la media dei valori dei parametri. Esempio: avg((1,2,3)) Risultato: 2 |
fn:max((arg,arg,...)) |
Ritorna il parametro più grande rispetto agli altri parametri. Esempio: max((1,2,3)) Risultato: 3 Esempio: max(('a', 'k')) Risultato: 'k' |
fn:min((arg,arg,...)) |
Ritorna il parametro più piccolo rispetto agli altri parametri. Esempio: min((1,2,3)) Risultato: 1 Esempio: min(('a', 'k')) Risultato: 'a' |
fn:sum(arg,arg,...) | Ritorna la somma dei valori numerici di ciascun nodo nel set di nodi specificato. |
Funzione che genera una sequenza
Nome | Spiegazione |
---|---|
fn:id((string,string,...),node) | Ritorna una sequenza di nodi di elementi, i cui valori ID sono uguali a uno o più valori specificati nel parametro stringa. |
fn:idref((string,string,...),node) | Ritorna una sequenza di nodi di elementi o attributi, i cui valori IDREF sono uguali a uno o più valori specificati nel parametro stringa. |
fn:doc(URI) | |
fn:doc-available(URI) | Restituisce true se la funzione doc() restituisce un nodo documento, altrimenti restituisce false. |
|
Funzioni di contesto
Nome | Spiegazione |
---|---|
fn:position() |
Ritorna l'indice della posizione del nodo corrente che viene trattato. Esempio: //book[position()<=3] Risultato: seleziona i primi tre elementi book |
fn:last() |
Ritorna il numero di elementi nella lista dei nodi trattati. Esempio: //book[last()] Risultato: seleziona l'ultimo elemento book |
fn:current-dateTime() | Ritorna il dateTime corrente (con fuso orario). |
fn:current-date() | Ritorna la data corrente (con fuso orario). |
fn:current-time() | Ritorna l'ora corrente (con fuso orario). |
fn:implicit-timezone() | Ritorna il valore dell'ora implicita. |
fn:default-collation() | Ritorna il valore della collazione predefinita. |
fn:static-base-uri() | Ritorna il valore di base-uri. |
Funzioni XSLT
Inoltre, ci sono anche le seguenti funzioni XSLT integrate:
Nome | Descrizione |
---|---|
current() | Ritorna un insieme di nodi che contiene come membro unico il nodo corrente. |
document() | Usato per accedere ai nodi di un documento XML esterno. |
element-available() | Verifica se il processore XSLT supporta l'elemento specificato. |
format-number() | Converti un numero in una stringa. |
function-available() | Verifica se il processore XSLT supporta la funzione specificata. |
generate-id() | Ritorna il valore della stringa che identifica univocamente il nodo specificato. |
key() | Ricerca gli elementi marcati con la frase <xsl:key> precedenti. |
node-set | Converti l'albero in un insieme di nodi. L'insieme di nodi generato contiene sempre un singolo nodo ed è il nodo radice dell'albero. |
system-property() | Ritorna il valore dell'attributo di sistema. |
unparsed-entity-uri() | Ritorna l'URI dell'entità non解析ata. |
- Pagina precedente Elementi XSLT
- Pagina successiva Tutorial XML