Fonctions XSLT, XPath et XQuery
- Page précédente Éléments XSLT
- Page suivante Tutoriel XML
XSLT 2.0, XPath 2.0 et XQuery 1.0 partagent la même bibliothèque de fonctions.
Manuel de référence des fonctions
Le préfixe par défaut de l'espace de noms des fonctions est :fn:
L'URI de l'espace de noms des fonctions est :http://www.w3.org/2005/xpath-functions
Avis :Utilisé généralement fn:
Préfixe pour appeler la fonction, par exemple fn:string()
Cependant, en raison de fn:
C'est le préfixe par défaut de l'espace de noms, donc le nom de la fonction n'a pas besoin d'être ajouté lors de l'appel.
Fonctions d'accès
Nom | Explication |
---|---|
fn:node-name(node) | Renvoie le nom de nœud du nœud de paramètre. |
fn:nilled(node) | Renvoie une valeur booléenne indiquant si le nœud de paramètre est refusé. |
fn:data(item.item,...) | Accepte une séquence d'items et renvoie une séquence de valeurs atomiques. |
|
Renvoie la valeur de l'attribut base-uri du nœud courant ou spécifié. |
fn:document-uri(node) | Renvoie la valeur de l'attribut document-uri du nœud spécifié. |
Fonctions d'erreur et de suivi
Nom | Explication |
---|---|
|
Exemple : error(fn:QName('http://example.com/test', 'err:toohigh'), 'Erreur : Le prix est trop élevé') Résultat : renvoie à l'environnement de traitement externe http://example.com/test#toohigh ainsi que la chaîne "Erreur : Le prix est trop élevé". |
fn:trace(value,label) | Utilisé pour le debug des requêtes. |
Fonctions concernant les nombres
Nom | Explication |
---|---|
fn:number(arg) |
Renvoie la valeur numérique du paramètre. Le paramètre peut être une valeur booléenne, une chaîne ou un ensemble de nœuds. Exemple : number('100') Résultat : 100 |
fn:abs(num) |
Retournez la valeur absolue du paramètre. Exemple : abs(3.14) Résultat : 3.14 Exemple : abs(-3.14) Résultat : 3.14 |
fn:ceiling(num) |
Retournez le plus petit entier supérieur au paramètre num. Exemple : ceiling(3.14) Résultat : 4 |
fn:floor(num) |
Retournez le plus grand entier non supérieur au paramètre num. Exemple : floor(3.14) Résultat : 3 |
fn:round(num) |
Arrondissez le paramètre num à l'entier le plus proche. Exemple : round(3.14) Résultat : 3 |
fn:round-half-to-even() |
Exemple : round-half-to-even(0.5) Résultat : 0 Exemple : round-half-to-even(1.5) Résultat : 2 Exemple : round-half-to-even(2.5) Résultat : 2 |
Fonctions de chaîne
Nom | Explication |
---|---|
fn:string(arg) |
Retournez la valeur en chaîne du paramètre. Le paramètre peut être un nombre, une valeur logique ou un ensemble de nœuds. Exemple : string(314) Résultat : "314" |
fn:codepoints-to-string(int,int,...) |
Retournez une chaîne en fonction de la séquence de points de code. Exemple : codepoints-to-string(84, 104, 233, 114, 232, 115, 101) Résultat : 'Thérèse' |
fn:string-to-codepoints(string) |
Retournez une séquence de points de code en fonction de la chaîne. Exemple : string-to-codepoints("Thérèse") Résultat : 84, 104, 233, 114, 232, 115, 101 |
fn:codepoint-equal(comp1,comp2) | Selon la correspondance des points de code Unicode, si la valeur de comp1 est égale à la valeur de comp2, retournez true. Sinon, retournez false. (http://www.w3.org/2005/02/xpath-functions/collation/codepoint). |
|
Si comp1 est inférieur à comp2, retournez -1. Si comp1 est égal à comp2, retournez 0. Si comp1 est supérieur à comp2, retournez 1. (Selon les règles de correspondance utilisées). Exemple : compare('ghi', 'ghi') Résultat : 0 |
fn:concat(string,string,...) |
Retourne la concaténation des chaînes. Exemple : concat('XPath ','is ','FUN!') Résultat : 'XPath is FUN!' |
fn:string-join((string,string,...),sep) |
Utilise le paramètre sep en tant que séparateur pour retourner une chaîne composée de la concaténation des paramètres string. Exemple : string-join(('We', 'are', 'having', 'fun!'), ' ') Résultat : ' We are having fun! ' Exemple : string-join(('We', 'are', 'having', 'fun!')) Résultat : 'Wearehavingfun!' Exemple : string-join((), 'sep') Résultat : '' |
|
Retourne une sous-chaîne de la longueur spécifiée, à partir de la position start. L'index du premier caractère est 1. Si le paramètre len est omis, retourne la sous-chaîne de la position start à la fin de la chaîne. Exemple : substring('Beatles',1,4) Résultat : 'Beat' Exemple : substring('Beatles',2) Résultat : 'eatles' |
|
Retourne la longueur de la chaîne spécifiée. Si le paramètre string n'est pas spécifié, retourne la longueur de la valeur de chaîne du noeud courant. Exemple : string-length('Beatles') Résultat : 7 |
|
Supprime les espaces au début et à la fin de la chaîne spécifiée, remplace toutes les séquences d'espaces internes par un seul espace et retourne le résultat. Si le paramètre string n'est pas spécifié, traite le noeud courant. Exemple : normalize-space(' The XML ') Résultat : 'The XML' |
fn:normalize-unicode() | Exécute la norme Unicode. |
fn:upper-case(string) |
Convertit le paramètre string en majuscules. Exemple : upper-case('The XML') Résultat : 'THE XML' |
fn:lower-case(string) |
Convertit la chaîne de caractères en minuscules. Exemple : lower-case('The XML') Résultat : 'the xml' |
fn:translate(string1,string2,string3) |
Remplacez string2 par string3 dans string1. Exemple : translate('12:30','30','45') Résultat : '12:45' Exemple : translate('12:30','03','54') Résultat : '12:45' Exemple : translate('12:30','0123','abcd') Résultat : 'bc:da' |
fn:escape-uri(stringURI,esc-res) |
Exemple : escape-uri("http://example.com/test#car", true()) Résultat : "http%3A%2F%2Fexample.com%2Ftest#car" Exemple : escape-uri("http://example.com/test#car", false()) Résultat : "http://example.com/test#car" Exemple : escape-uri ("http://example.com/~bébé", false()) Résultat : "http://example.com/~b%C3%A9b%C3%A9" |
fn:contains(string1,string2) |
Si string1 contient string2, renvoie true, sinon renvoie false. Exemple : contains('XML','XM') Résultat : true |
fn:starts-with(string1,string2) |
Si string1 commence par string2, renvoie true, sinon renvoie false. Exemple : starts-with('XML','X') Résultat : true |
fn:ends-with(string1,string2) |
Si string1 se termine par string2, renvoie true, sinon renvoie false. Exemple : ends-with('XML','X') Résultat : false |
fn:substring-before(string1,string2) |
Renvoie le sous-chaîne précédant l'apparition de string2 dans string1. Exemple : substring-before('12/10','/') Résultat : '12' |
fn:substring-after(string1,string2) |
Retourne la sous-chaine qui suit string2 dans string1. Exemple : substring-after('12/10','/') Résultat : '10' |
fn:matches(string,pattern) |
Retourne true si le paramètre string correspond au schéma spécifié, sinon retourne false. Exemple : matches("Merano", "ran") Résultat : true |
fn:replace(string,pattern,replace) |
Remplace le schéma spécifié par le paramètre replace et retourne le résultat. Exemple : replace("Bella Italia", "l", "*") Résultat : 'Be**a Ita*ia' Exemple : replace("Bella Italia", "l", "") Résultat : 'Bea Itaia' |
fn:tokenize(string,pattern) |
Exemple : tokenize("XPath is fun", "\s+") Résultat : ("XPath", "is", "fun") |
Fonctions concernant anyURI.
Nom | Explication |
---|---|
fn:resolve-uri(relative,base) |
Fonctions concernant les valeurs booléennes.
Nom | Explication |
---|---|
fn:boolean(arg) | Retourne la valeur booléenne d'un nombre, d'une chaîne ou d'un ensemble de nœuds. |
fn:not(arg) |
Premièrement, le paramètre est restauré à une valeur booléenne par la fonction boolean(). Retourne true si la valeur booléenne est false, sinon retourne true. Exemple : not(true()) Résultat : false |
fn:true() |
Retourne la valeur booléenne true. Exemple : true() Résultat : true |
fn:false() |
Retourne la valeur booléenne false. Exemple : false() Résultat : false |
Fonctions concernant la durée, la date et l'heure.
Fonction d'extraction des composants de date, heure et durée.
Nom | Explication |
---|---|
fn:dateTime(date,time) | Convertit le paramètre en date et heure. |
fn:years-from-duration(datetimedur) | Retourne l'entier de la partie année de la valeur de paramètre, exprimé en notation de vocabulaire standard. |
fn:months-from-duration(datetimedur) | Retourne l'entier de la partie mois de la valeur de paramètre, exprimé en notation de vocabulaire standard. |
fn:days-from-duration(datetimedur) | Retourne l'entier de la partie jour de la valeur du paramètre, exprimé en termes standards. |
fn:hours-from-duration(datetimedur) | Retourne l'entier de la partie heure de la valeur du paramètre, exprimé en termes standards. |
fn:minutes-from-duration(datetimedur) | Retourne l'entier de la partie minute de la valeur du paramètre, exprimé en termes standards. |
fn:seconds-from-duration(datetimedur) | Retourne le nombre décimal de minutes de la valeur du paramètre, exprimé en termes standards. |
fn:year-from-dateTime(datetime) |
Retourne l'entier de la partie année de la valeur locale du paramètre. Exemple : year-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) Résultat : 2005 |
fn:month-from-dateTime(datetime) |
Retourne l'entier de la partie mois de la valeur locale du paramètre. Exemple : month-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) Résultat : 01 |
fn:day-from-dateTime(datetime) |
Retourne l'entier de la partie jour de la valeur locale du paramètre. Exemple : day-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) Résultat : 10 |
fn:hours-from-dateTime(datetime) |
Retourne l'entier de la partie heure de la valeur locale du paramètre. Exemple : hours-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) Résultat : 12 |
fn:minutes-from-dateTime(datetime) |
Retourne l'entier de la partie minute de la valeur locale du paramètre. Exemple : minutes-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) Résultat : 30 |
fn:seconds-from-dateTime(datetime) |
Retourne le nombre décimal de secondes de la valeur locale du paramètre. Exemple : seconds-from-dateTime(xs:dateTime("2005-01-10T12:30:00-04:10")) Résultat : 0 |
fn:timezone-from-dateTime(datetime) | Retourne la partie timezone du paramètre, si elle existe. |
fn:year-from-date(date) |
Retourne l'entier représentant la partie année du paramètre local. Exemple : year-from-date(xs:date("2005-04-23")) Résultat : 2005 |
fn:month-from-date(date) |
Retourne l'entier représentant la partie mois du paramètre local. Exemple : month-from-date(xs:date("2005-04-23")) Résultat : 4 |
fn:day-from-date(date) |
Retourne l'entier représentant la partie jour du paramètre local. Exemple : day-from-date(xs:date("2005-04-23")) Résultat : 23 |
fn:timezone-from-date(date) | Retourne la partie timezone du paramètre, si elle existe. |
fn:hours-from-time(time) |
Retourne l'entier représentant la partie heures du paramètre local. Exemple : hours-from-time(xs:time("10:22:00")) Résultat : 10 |
fn:minutes-from-time(time) |
Retourne l'entier représentant la partie minutes du paramètre local. Exemple : minutes-from-time(xs:time("10:22:00")) Résultat : 22 |
fn:seconds-from-time(time) |
Retourne l'entier représentant la partie secondes du paramètre local. Exemple : seconds-from-time(xs:time("10:22:00")) Résultat : 0 |
fn:timezone-from-time(time) | Retourne la partie timezone du paramètre, si elle existe. |
fn:adjust-dateTime-to-timezone(datetime,timezone) |
Si le paramètre timezone est vide, retourne le dateTime sans timezone. Sinon, retourne le dateTime avec timezone. |
fn:adjust-date-to-timezone(date,timezone) |
Si le paramètre timezone est vide, retourne la date sans timezone. Sinon, retourne la date avec timezone. |
fn:adjust-time-to-timezone(time,timezone) |
Si le paramètre timezone est vide, retourne le time sans timezone. Sinon, retourne la date avec le fuseau horaire. |
Fonctions liées aux QNames
Nom | Explication |
---|---|
fn:QName() | |
fn:local-name-from-QName() | |
fn:namespace-uri-from-QName() | |
fn:namespace-uri-for-prefix() | |
fn:in-scope-prefixes() | |
fn:resolve-QName() |
Fonctions relatives aux noeuds
Nom | Explication |
---|---|
|
Retourne le nom du noeud actuel ou du premier noeud du jeu de noeuds spécifié. |
|
Retourne le nom du noeud actuel ou du premier noeud du jeu de noeuds spécifié - sans préfixe d'espace de nommage. |
|
Retourne l'URI d'espace de nommage du noeud actuel ou du premier noeud du jeu de noeuds spécifié. |
fn:lang(lang) |
Retourne true si le langage du noeud actuel correspond au langage spécifié. Exemple : Lang("en") est vrai pour <p xml:lang="en">...</p> Exemple : Lang("de") est faux pour <p xml:lang="en">...</p> |
|
Retourne le noeud racine de l'arbre de noeuds appartenant au noeud actuel ou au noeud spécifié. Il s'agit généralement du noeud de document. |
Fonction relative à la séquence
Fonction générale
Nom | Explication |
---|---|
fn:index-of((item,item,...),searchitem) |
Retourne la position de l'élément dans la séquence de l'élément égale au paramètre searchitem. Exemple : index-of ((15, 40, 25, 40, 10), 40) Résultat : (2, 4) Exemple : index-of (("a", "dog", "and", "a", "duck"), "a") Résultat (1, 4) Exemple : index-of ((15, 40, 25, 40, 10), 18) Résultat : () |
fn:remove((item,item,...),position) |
Retourne une nouvelle séquence construite à partir de l'élément paramètre - supprimez l'élément à la position spécifiée par le paramètre position. Exemple : remove(("ab", "cd", "ef"), 0) Résultat : ("ab", "cd", "ef") Exemple : remove(("ab", "cd", "ef"), 1) Résultat : ("cd", "ef") Exemple : remove(("ab", "cd", "ef"), 4) Résultat : ("ab", "cd", "ef") |
fn:empty(item,item,...) |
Retourne true si la valeur du paramètre est une séquence vide, sinon retourne false. Exemple : empty(remove(("ab", "cd"), 1)) Résultat : false |
fn:exists(item,item,...) |
Retourne true si la valeur du paramètre n'est pas une séquence vide, sinon retourne false. Exemple : exists(remove(("ab"), 1)) Résultat : false |
fn:distinct-values((item,item,...),collation) |
Retourne les valeurs différentes. Exemple : distinct-values((1, 2, 3, 1, 2)) Résultat : (1, 2, 3) |
fn:insert-before((item,item,...),pos,inserts) |
Retourne une nouvelle séquence construite à partir du paramètre item, en insérant la valeur spécifiée par le paramètre inserts à la position spécifiée par le paramètre pos. Exemple : insert-before(("ab", "cd"), 0, "gh") Résultat : ("gh", "ab", "cd") Exemple : insert-before(("ab", "cd"), 1, "gh") Résultat : ("gh", "ab", "cd") Exemple : insert-before(("ab", "cd"), 2, "gh") Résultat : ("ab", "gh", "cd") Exemple : insert-before(("ab", "cd"), 5, "gh") Résultat : ("ab", "cd", "gh") |
fn:reverse((item,item,...)) |
Retourne l'ordre inversé des éléments spécifiés. Exemple : reverse(("ab", "cd", "ef")) Résultat : ("ef", "cd", "ab") Exemple : reverse(("ab")) Résultat : ("ab") |
fn:subsequence((item,item,...),start,len) |
Retourne la séquence d'éléments à partir de l'indice spécifié par le paramètre start, avec une longueur spécifiée par le paramètre len. La position du premier élément est 1. Exemple : subsequence(($item1, $item2, $item3,...), 3) Résultat : ($item3, ...) Exemple : subsequence(($item1, $item2, $item3, ...), 2, 2) Résultat : ($item2, $item3) |
fn:unordered((item,item,...)) | Retourne les éléments suivant l'ordre déterminé par l'implémentation. |
Fonction de test de la capacité de la séquence
Nom | Explication |
---|---|
fn:zero-or-one(item,item,...) | Retourne le paramètre s'il contient zéro ou un élément, sinon génère une erreur. |
fn:one-or-more(item,item,...) | Retourne le paramètre s'il contient un ou plusieurs éléments, sinon génère une erreur. |
fn:exactly-one(item,item,...) | Retourne le paramètre s'il contient un élément, sinon génère une erreur. |
Égal, Union, Intersection et Exception
Nom | Explication |
---|---|
fn:deep-equal(param1,param2,collation) | Retourne true si param1 et param2 sont égaux (deep-equal), sinon retourne false. |
Fonction de totalisation
Nom | Explication |
---|---|
fn:count((item,item,...)) | Renvoie le nombre de nœuds. |
fn:avg((arg,arg,...)) |
Renvoie la moyenne des valeurs des paramètres. Exemple : avg((1,2,3)) Résultat : 2 |
fn:max((arg,arg,...)) |
Renvoie le paramètre supérieur à d'autres paramètres. Exemple : max((1,2,3)) Résultat : 3 Exemple : max(('a', 'k')) Résultat : 'k' |
fn:min((arg,arg,...)) |
Renvoie le paramètre inférieur à d'autres paramètres. Exemple : min((1,2,3)) Résultat : 1 Exemple : min(('a', 'k')) Résultat : 'a' |
fn:sum(arg,arg,...) | Renvoie la somme des valeurs numériques de chaque nœud dans le ensemble de nœuds spécifié. |
Fonction générant une séquence
Nom | Explication |
---|---|
fn:id((string,string,...),node) | Renvoie une séquence d'éléments, dont la valeur ID est égale à l'une ou plusieurs valeurs spécifiées dans le paramètre string. |
fn:idref((string,string,...),node) | Renvoie une séquence d'éléments ou de nœuds d'attribut, dont la valeur IDREF est égale à l'une ou plusieurs valeurs spécifiées dans le paramètre string. |
fn:doc(URI) | |
fn:doc-available(URI) | Retourne true si la fonction doc() retourne un nœud de document, sinon retourne false. |
|
Fonctions de contexte
Nom | Explication |
---|---|
fn:position() |
Retourner l'index positionnel du nœud en cours de traitement. Exemple : //book[position()<=3] Résultat : sélectionner les trois premiers éléments book |
fn:last() |
Retourner le nombre d'éléments dans la liste des nœuds traités. Exemple : //book[last()] Résultat : sélectionner le dernier élément book |
fn:current-dateTime() | Retourner le dateTime actuel (avec la zone horaire). |
fn:current-date() | Retourner la date actuelle (avec la zone horaire). |
fn:current-time() | Retourner l'heure actuelle (avec la zone horaire). |
fn:implicit-timezone() | Retourner la valeur de la zone horaire implicite. |
fn:default-collation() | Retourner la valeur de la correspondance par défaut. |
fn:static-base-uri() | Retourner la valeur de base-uri. |
Fonctions XSLT
De plus, il existe les fonctions XSLT intégrées suivantes :
Nom | Description |
---|---|
current() | Retourner un ensemble de nœuds contenant le nœud actuel en tant que membre unique. |
document() | Utilisé pour accéder aux nœuds d'un document XML externe. |
element-available() | Vérifier si le processeur XSLT prend en charge l'élément spécifié. |
format-number() | Convertir un nombre en chaîne. |
function-available() | Vérifier si le processeur XSLT prend en charge la fonction spécifiée. |
generate-id() | Retourner une valeur de chaîne unique identifiant le nœud spécifié. |
key() | Récupérer les éléments marqués précédemment par la directive <xsl:key>. |
node-set | Convertir un arbre en ensemble de nœuds. L'ensemble de nœuds généré contient toujours un seul nœud et est le nœud racine de l'arbre. |
system-property() | Retourner la valeur de la propriété système. |
unparsed-entity-uri() | Retourner l'URI de l'entité non analysée. |
- Page précédente Éléments XSLT
- Page suivante Tutoriel XML