XSLT 2.0, XPath 2.0 e XQuery 1.0, condividono la stessa libreria funzioni.
funzioni di riferimento
Il prefisso di default per la funzione di namespace è fn:
L'URI della funzione di spazio dei nomi è: http://www.w3.org/2005/xpath-functions
Tip: Le funzioni sono spesso chiamati con il fn: prefisso, ad esempio fn: string() . Tuttavia, dal momento che fn: è il prefisso di default dello spazio dei nomi, i nomi delle funzioni non hanno bisogno di essere prefissato quando viene chiamato.
funzioni di accesso
Nome | Descrizione |
---|---|
fn:node- name( node ) | Restituisce il nodo-nome del nodo argomento |
fn: nilled( node ) | Restituisce un valore booleano che indica se il nodo argomento è nilled |
fn: data( item.item,... ) | Prende una sequenza di oggetti e restituisce una sequenza di valori atomici |
fn:base- uri() fn:base- uri( node ) | Restituisce il valore della proprietà base-uri del nodo corrente o specificato |
fn:document- uri( node ) | Restituisce il valore della proprietà del documento-uri per il nodo specificato |
Di errore e di Trace Funzioni
Nome | Descrizione |
---|---|
fn: error() fn: error( error ) fn: error( error,description ) fn: error( error,description,error-object ) | Esempio: error(fn:QName('http://example.com/test', 'err:toohigh') , 'Errore: il prezzo è troppo alto') Risultato: Restituisce http://example.com/test#toohigh e la stringa "Error: Price is too high" per l'ambiente di elaborazione esterna |
fn: trace( value,label ) | Utilizzato per le query di debug |
Funzioni su valori numerici
Nome | Descrizione |
---|---|
fn: number( arg ) | Restituisce il valore numerico dell'argomento. L'argomento potrebbe essere un valore booleano, una stringa o set di nodi Esempio: number('100') |
fn: abs( num ) | Restituisce il valore assoluto dell'argomento Esempio: abs(3.14) Esempio: abs(-3.14) |
fn: ceiling( num ) | Restituisce il numero intero più piccolo che è maggiore del numero di argomenti Esempio: ceiling(3.14) |
fn: floor( num ) | Restituisce il più grande intero che non è maggiore il numero di argomenti Esempio: floor(3.14) |
fn: round( num ) | Arrotonda l'argomento numero al numero intero più vicino Esempio: round(3.14) |
fn:round-half-to- even() | Esempio: round-half-to- even(0.5) Risultato: 0 Esempio: round-half-to- even(1.5) Esempio: round-half-to- even(2.5) |
Funzioni su stringhe
Nome | Descrizione |
---|---|
fn: string( arg ) | Restituisce il valore stringa dell'argomento. L'argomento potrebbe essere un numero, booleano o set di nodi Esempio: string(314) |
fn:codepoints-to- string(( int,int,... ) ) | Crea una stringa da una sequenza di punti di codice Unicode standard Esempio: codepoints-to string((84, 104, 233, 114, 232, 115, 101) ) |
fn:string-to- codepoints( string ) | Restituisce la sequenza dei punti di codice standard Unicode da una stringa Esempio: stringa-to- codepoints("Th r se") |
fn:codepoint- equal( comp1,comp2 ) | Restituisce true se il valore di comp1 è uguale al valore di comp2, a seconda del punto di collazione di codici Unicode (http://www.w3.org/2005/02/xpath-functions/collation/codepoint) , altrimenti restituisce falso |
fn: compare( comp1,comp2 ) fn: compare( comp1,comp2,collation ) | Restituisce -1 se comp1 è minore di comp2, 0 se comp1 è uguale comp2, o 1 se comp1 è maggiore di comp2 (secondo le regole del confronto che viene utilizzato) Esempio: compare('ghi', 'ghi') |
fn: concat( string,string,... ) | Restituisce la concatenazione delle stringhe Esempio: concat('XPath ','is ','FUN!') |
fn:string- join( (string,string,...) ,sep) | Restituisce una stringa creata concatenando gli argomenti stringa e utilizzando l'argomento settembre come separatore Esempio: String join(('We', 'are', 'having', 'fun!') , ' ') Esempio: String join(('We', 'are', 'having', 'fun!') ) Esempio: String join(() , 'settembre') |
fn: substring( string,start,len ) fn: substring( string,start ) | Restituisce la sottostringa dalla posizione di partenza fino alla lunghezza specificata. Indice del primo carattere è 1. Se la lunghezza è omesso restituisce la sottostringa dalla posizione di partenza fino alla fine Esempio: substring('Beatles',1,4) Esempio: substring('Beatles',2) |
fn:string- length( string ) fn:string- length() | Restituisce la lunghezza della stringa specificata. Se non v'è alcun argomento stringa restituisce la lunghezza del valore di stringa del nodo corrente Esempio: String length('Beatles') |
fn:normalize- space( string ) fn:normalize- space() | Rimuove spazi iniziali e finali della stringa specificata, e sostituisce tutte le sequenze interne di spazio bianco con uno e restituisce il risultato. Se non v'è alcun argomento stringa fa lo stesso sul nodo corrente Esempio: standardizzano space(' The XML ') |
fn:normalize- unicode() | |
fn:upper- case( string ) | Converte l'argomento stringa maiuscole Esempio: in alto a case('The XML') |
fn:lower- case( string ) | Converte l'argomento stringa minuscole Esempio: in basso a case('The XML') |
fn: translate( string1,string2,string3 ) | Converte string1 sostituendo i caratteri in string2 con i personaggi string3 Esempio: translate('12:30','30','45') Esempio: translate('12:30','03','54') Esempio: translate('12:30','0123','abcd') |
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() ) Esempio: fuga-uri ("http://example.com/~b b ", false() ) |
fn: contains( string1,string2 ) | Restituisce vero se stringa1 stringa2 contiene, altrimenti restituisce falso Esempio: contains('XML','XM') |
fn:starts- with( string1,string2 ) | Restituisce vero se stringa1 inizia con stringa2, altrimenti restituisce falso Esempio: starts- with('XML','X') |
fn:ends- with( string1,string2 ) | Restituisce vero se stringa1 termina con stringa2, altrimenti restituisce falso Esempio: ends- with('XML','X') |
fn:substring- before( string1,string2 ) | Restituisce l'inizio di stringa1 stringa2 prima che si verifichi in esso Esempio: substring- before('12/10','/') |
fn:substring- after( string1,string2 ) | Restituisce il resto di stringa1 stringa2 dopo si verifica in essa Esempio: substring- after('12/10','/') |
fn: matches( string,pattern ) | Restituisce vero se l'argomento stringa corrisponde al modello, in caso contrario, restituisce false Esempio: matches("Merano", "ran") |
fn: replace( string,pattern,replace ) | Restituisce una stringa che viene creato sostituendo al pattern specificato con l'argomento sostituire Esempio: replace("Bella Italia", "l" , "*") Esempio: replace("Bella Italia", "l" , "") |
fn: tokenize( string,pattern ) | Esempio: tokenize("XPath is fun", "\s+") Risultato: ("XPath", "is" , "fun") |
Funzioni per anyURI
Nome | Descrizione |
---|---|
fn:resolve- uri( relative,base ) |
Funzioni su valori booleani
Nome | Descrizione |
---|---|
fn: boolean( arg ) | Restituisce un valore booleano per un numero, una stringa, o il nodo-set |
fn: not( arg ) | L'argomento viene dapprima ridotto ad un valore booleano applicando la boolean() funzione. Restituisce true se il valore booleano è falso, e falso se il valore booleano è vero Esempio: not(true() ) |
fn: true() | Restituisce il valore booleano vero Esempio: true() |
fn: false() | Restituisce il valore booleano falso Esempio: false() |
Funzioni su durate, date e orari
Funzioni di estrazione dei componenti su durate, date e orari
Nome | Descrizione |
---|---|
fn: dateTime( date,time ) | Converte gli argomenti per una data e un tempo |
fn:years-from- duration( datetimedur ) | Restituisce un numero intero che rappresenta la componente anni nella rappresentazione lessicale canonica del valore dell'argomento |
fn:months-from- duration( datetimedur ) | Restituisce un numero intero che rappresenta la componente mesi nella rappresentazione lessicale canonica del valore dell'argomento |
fn:days-from- duration( datetimedur ) | Restituisce un numero intero che rappresenta la componente giorni nella rappresentazione lessicale canonica del valore dell'argomento |
fn:hours-from- duration( datetimedur ) | Restituisce un numero intero che rappresenta il componente ore nella rappresentazione lessicale canonica del valore dell'argomento |
fn:minutes-from- duration( datetimedur ) | Restituisce un numero intero che rappresenta il componente minuti nella rappresentazione lessicale canonica del valore dell'argomento |
fn:seconds-from- duration( datetimedur ) | Restituisce un numero decimale che rappresenta il componente secondi nella rappresentazione lessicale canonica del valore dell'argomento |
fn:year-from- dateTime( datetime ) | Restituisce un numero intero che rappresenta la componente anno nel valore localizzato dell'argomento Esempio: anni da- dateTime(xs:dateTime("2005-01-10T12:30-04:10") ) |
fn:month-from- dateTime( datetime ) | Restituisce un numero intero che rappresenta la componente mese nel valore localizzato dell'argomento Esempio: mese-da- dateTime(xs:dateTime("2005-01-10T12:30-04:10") ) |
fn:day-from- dateTime( datetime ) | Restituisce un numero intero che rappresenta la componente giorno nel valore localizzato dell'argomento Esempio: day-da- dateTime(xs:dateTime("2005-01-10T12:30-04:10") ) |
fn:hours-from- dateTime( datetime ) | Restituisce un numero intero che rappresenta il componente ore in valore localizzato dell'argomento Esempio: ore-da- dateTime(xs:dateTime("2005-01-10T12:30-04:10") ) |
fn:minutes-from- dateTime( datetime ) | Restituisce un numero intero che rappresenta il componente minuti nel valore localizzato dell'argomento Esempio: minuti-da- dateTime(xs:dateTime("2005-01-10T12:30-04:10") ) |
fn:seconds-from- dateTime( datetime ) | Restituisce un numero decimale che rappresenta il componente secondi nel valore localizzato dell'argomento Esempio: secondi-da- dateTime(xs:dateTime("2005-01-10T12:30:00-04:10") ) |
fn:timezone-from- dateTime( datetime ) | Restituisce il componente del fuso orario dell'argomento se del caso |
fn:year-from- date( date ) | Restituisce un numero intero che rappresenta l'anno del valore localizzato dell'argomento Esempio: anno-da- date(xs:date("2005-04-23") ) |
fn:month-from- date( date ) | Restituisce un numero intero che rappresenta il mese nel valore localizzato dell'argomento Esempio: il mese-da- date(xs:date("2005-04-23") ) |
fn:day-from- date( date ) | Restituisce un numero intero che rappresenta il giorno del valore localizzato dell'argomento Esempio: day-da- date(xs:date("2005-04-23") ) |
fn:timezone-from- date( date ) | Restituisce il componente del fuso orario dell'argomento se del caso |
fn:hours-from- time( time ) | Restituisce un numero intero che rappresenta il componente ore in valore localizzato dell'argomento Esempio: ore-da- time(xs:time("10:22:00") ) |
fn:minutes-from- time( time ) | Restituisce un numero intero che rappresenta il componente minuti nel valore localizzato dell'argomento Esempio: minuti-da- time(xs:time("10:22:00") ) |
fn:seconds-from- time( time ) | Restituisce un numero intero che rappresenta il componente secondi nel valore localizzato dell'argomento Esempio: secondi-da- time(xs:time("10:22:00") ) |
fn:timezone-from- time( time ) | Restituisce il componente del fuso orario dell'argomento se del caso |
fn:adjust-dateTime-to- timezone( datetime,timezone ) | Se l'argomento fuso orario è vuota, restituisce un dateTime senza un fuso orario. In caso contrario, restituisce un dateTime con un fuso orario |
fn:adjust-date-to- timezone( date ,timezone ) | Se l'argomento fuso orario è vuota, restituisce una data senza un fuso orario. In caso contrario, restituisce un appuntamento con un fuso orario |
fn:adjust-time-to- timezone( time ,timezone ) | Se l'argomento fuso orario è vuota, restituisce un tempo senza un fuso orario. In caso contrario, restituisce un tempo con un fuso orario |
Funzioni correlate a QNames
Nome | Descrizione |
---|---|
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 su nodi
Nome | Descrizione |
---|---|
fn: name() fn: name( nodeset ) | Restituisce il nome del nodo corrente o il primo nodo nel set nodo specificato |
fn:local- name() fn:local- name( nodeset ) | Restituisce il nome del nodo corrente o il primo nodo nel set nodo specificato - senza il prefisso dello spazio dei nomi |
fn:namespace- uri() fn:namespace- uri( nodeset ) | Restituisce l'URI del namespace del nodo corrente o il primo nodo del gruppo nodo specificato |
fn: lang( lang ) | Restituisce vero se la lingua del nodo corrente corrisponde alla lingua della lingua specificata Esempio: Lang("en") è vero per Esempio: Lang("de") è falsa per |
fn: root() fn: root( node ) | Restituisce la radice dell'albero a cui il nodo corrente o specificata frazione. Questo di solito è un nodo di documenti |
Funzioni su sequenze
Funzioni generali sulle sequenze
Nome | Descrizione |
---|---|
fn:index- of( (item,item,...) ,searchitem) | Restituisce le posizioni all'interno della sequenza di elementi che sono uguale all'argomento searchitem Esempio: indice di ((15, 40, 25, 40, 10) , 40) Esempio: index-di (("a", "dog" , "and" , "a" , "duck") , "a") Esempio: indice di ((15, 40, 25, 40, 10) , 18) |
fn: remove( (item,item,...) ,position) | Restituisce una nuova sequenza costruito dal valore degli argomenti dell'elemento - con l'elemento specificato dall'argomento posizione allontanata Esempio: remove(("ab", "cd" , "ef") , 0) Esempio: remove(("ab", "cd" , "ef") , 1) Esempio: remove(("ab", "cd" , "ef") , 4) |
fn: empty( item,item,... ) | Restituisce true se il valore degli argomenti è una sequenza vuota, altrimenti restituisce falso Esempio: empty(remove(("ab", "cd") , 1)) |
fn: exists( item,item,... ) | Restituisce true se il valore degli argomenti non è una sequenza vuota, altrimenti restituisce falso Esempio: exists(remove(("ab") , 1)) |
fn:distinct- values( (item,item,...) ,collation) | Restituisce solo distinte (different) valori Esempio: distinct- values((1, 2, 3, 1, 2) ) |
fn:insert- before( (item,item,...) ,pos,inserts) | Restituisce una nuova sequenza costruito dal valore degli argomenti dell'elemento - con il valore dell'argomento inserti inserito nella posizione specificata dall'argomento pos Esempio: inserire: before(("ab", "cd") , 0, "gh") Esempio: inserire: before(("ab", "cd") , 1, "gh") Esempio: inserire: before(("ab", "cd") , 2, "gh") Esempio: inserire: before(("ab", "cd") , 5, "gh") |
fn: reverse( (item,item,...) ) | Restituisce l'ordine inverso degli elementi specificati Esempio: reverse(("ab", "cd" , "ef") ) Esempio: reverse(("ab") ) |
fn: subsequence( (item,item,...) ,start,len) | Restituisce una sequenza di elementi dalla posizione specificata dall'argomento iniziale e continua per il numero di elementi specificati dall'argomento len. Il primo elemento si trova nella posizione 1 Esempio: subsequence(($item1, $item2, $item3,...) , 3) Esempio: subsequence(($item1, $item2, $item3, ...) , 2, 2) |
fn: unordered( (item,item,...) ) | Restituisce gli elementi in un ordine dipendente implementazione |
Funzioni che mettono alla prova la cardinalità di Sequenze
Nome | Descrizione |
---|---|
fn:zero-or- one( item,item,... ) | Restituisce l'argomento se contiene zero o gli articoli uno, altrimenti si genera un errore |
fn:one-or- more( item,item,... ) | Restituisce l'argomento se contiene uno o più elementi, altrimenti si genera un errore |
fn:exactly- one( item,item,... ) | Restituisce l'argomento se contiene esattamente un elemento, altrimenti si genera un errore |
Uguale, unione, intersezione e Salvo
Nome | Descrizione |
---|---|
fn:deep- equal( param1,param2,collation ) | Restituisce true se param1 e param2 sono profondamente uguali tra loro, altrimenti restituisce falso |
Funzioni di aggregazione
Nome | Descrizione |
---|---|
fn: count( (item,item,...) ) | Restituisce il conteggio dei nodi |
fn: avg( (arg,arg,...) ) | Restituisce la media dei valori degli argomenti Esempio: avg((1,2,3) ) |
fn: max( (arg,arg,...) ) | Restituisce l'argomento che è maggiore rispetto agli altri Esempio: max((1,2,3) ) Esempio: max(('a', 'k') ) |
fn: min( (arg,arg,...) ) | Restituisce l'argomento che è meno degli altri Esempio: min((1,2,3) ) Esempio: min(('a', 'k') ) |
fn: sum( arg,arg,... ) | Restituisce la somma del valore numerico di ogni nodo nel nodo-set specificato |
Le funzioni che generano sequenze
Nome | Descrizione |
---|---|
fn: id( (string,string,...) ,node) | Restituisce una sequenza di nodi di elementi che hanno un valore ID uguale al valore di uno o più dei valori specificati nell'argomento stringa |
fn: idref( (string,string,...) ,node) | Restituisce una sequenza di elemento o attributo nodi che hanno un valore IDREF uguale al valore di uno o più dei valori specificati nell'argomento stringa |
fn: doc( URI ) | |
fn:doc- available( URI ) | Restituisce true se il doc() restituisce un nodo del documento, altrimenti restituisce falso |
fn: collection() fn: collection( string ) |
Funzioni di contesto
Nome | Descrizione |
---|---|
fn: position() | Restituisce la posizione di indice del nodo che è attualmente in fase di elaborazione Esempio: // book [ position() <= 3] |
fn: last() | Restituisce il numero di elementi nell'elenco dei nodi elaborati Esempio: // book [ last() ] |
fn:current- dateTime() | Restituisce il dateTime corrente (with timezone) |
fn:current- date() | Restituisce la data corrente (with timezone) |
fn:current- time() | Restituisce l'ora attuale (with timezone) |
fn:implicit- timezone() | Restituisce il valore del fuso orario implicito |
fn:default- collation() | Restituisce il valore del confronto predefinite |
fn:static-base- uri() | Restituisce il valore della base-uri |
Funzioni XSLT
In aggiunta, ci sono le seguenti funzioni built-in XSLT:
Nome | Descrizione |
---|---|
current() | Restituisce il nodo corrente |
document() | Utilizzato per accedere ai nodi in un documento XML esterno |
element- available() | Verifica se l'elemento specificato è supportato dal processore XSLT |
format- number() | Converte un numero in una stringa |
function- available() | Verifica se la funzione specificata è supportata dal processore XSLT |
generate- id() | Restituisce un valore di stringa che identifica univocamente il nodo indicato |
key() | Restituisce un set di nodi utilizzando l'indice specificato da un <xsl:key> elemento |
system- property() | Restituisce il valore delle proprietà di sistema |
unparsed-entity- uri() | Restituisce l'URI di un'entità non analizzata |