Fonctions XPath, XQuery et XSLT

Fonctions d'accès

Nom Description
fn:node-name(node) Retourne le nom de nœud du nœud de paramètre.
fn:nilled(node) Retourne 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 retourne une séquence de valeurs atomiques.
  • fn:base-uri()
  • fn:base-uri(node)
Retourne la valeur de l'attribut base-uri du nœud courant ou spécifié.
fn:document-uri(node) Retourne la valeur de l'attribut document-uri du nœud spécifié.

Fonctions d'erreur et de suivi

Nom Description
  • fn:error()
  • fn:error(error)
  • fn:error(error,description)
  • fn:error(error,description,error-object)

Exemple : error(fn:QName('http://example.com/test', 'err:toohigh'), 'Error: Price is too high')

Résultat : Retourne à l'environnement de traitement externe http://example.com/test#toohigh ainsi que la chaîne "Error: Price is too high".

fn:trace(value,label) Utilisé pour le debug des requêtes.

Fonctions numériques

Nom Description
fn:number(arg)

Retourne 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)

Retourne 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)

Retourne l'entier le plus petit supérieur au paramètre num.

Exemple : ceiling(3.14)

Résultat : 4

fn:floor(num)

Retourne le plus grand entier non supérieur au paramètre num.

Exemple : floor(3.14)

Résultat : 3

fn:round(num)

Ronde num de manière à ce qu'il soit le plus proche de l'entier.

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 Description
fn:string(arg)

Retourne la valeur de 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,...)

Retourne une chaîne à partir d'une séquence de code points.

Exemple : codepoints-to-string(84, 104, 233, 114, 232, 115, 101)

Résultat : 'Thérèse'

fn:string-to-codepoints(string)

Retourne une séquence de code points à partir 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 comparaison de code point Unicode, si la valeur de comp1 est égale à la valeur de comp2, retourne true. Sinon, retourne false. (http://www.w3.org/2005/02/xpath-functions/collation/codepoint)
  • fn:compare(comp1,comp2)
  • fn:compare(comp1,comp2,collation)

Si comp1 est inférieur à comp2, retourne -1. Si comp1 est égal à comp2, retourne 0. Si comp1 est supérieur à comp2, retourne 1. (Selon les règles de comparaison utilisées).

Exemple : compare('ghi', 'ghi')

Résultat : 0

fn:concat(string,string,...)

Retourne la concaténation des chaînes de caractères.

Exemple : concat('XPath ','est ','FUN!')

Résultat : 'XPath est FUN!'

fn:rejoindre((string,string,...),sep)

Utilise le paramètre sep comme séparateur pour retourner la chaîne concaténée 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 : ''

  • fn:substring(string,start,len)
  • fn:substring(string,start)

Retourne une sous-chaîne de la longueur spécifiée, commençant à 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'

  • fn:string-length(string)
  • fn:string-length()

Retourne la longueur de la chaîne spécifiée. Si aucun paramètre string n'est fourni, retourne la longueur de la valeur de chaîne du noeud actuel.

Exemple : string-length('Beatles')

Résultat : 7

  • fn:normalize-space(string)
  • fn:normalize-space()

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 aucun paramètre string n'est fourni, traite le noeud actuel.

Exemple : normalize-space(' The   XML ')

Résultat : 'The XML'

fn:normalize-unicode() Exécute la normalisation 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 le paramètre string 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, retourne true, sinon retourne false.

Exemple : contains('XML','XM')

Résultat : true

fn:starts-with(string1,string2)

Si string1 commence par string2, retourne true, sinon retourne false.

Exemple : starts-with('XML','X')

Résultat : true

fn:ends-with(string1,string2)

Si string1 se termine par string2, retourne true, sinon retourne false.

Exemple : ends-with('XML','X')

Résultat : false

fn:substring-before(string1,string2)

Retourne la sous-chaine de caractères avant l'apparition de string2 dans string1.

Exemple : substring-before('12/10','/')

Résultat : '12'

fn:substring-after(string1,string2)

Retourne la sous-chaine de caractères après l'apparition de string2 dans string1.

Exemple : substring-after('12/10','/')

Résultat : '10'

fn:matches(string,pattern)

Retourne true si le paramètre string correspond au motif spécifié, sinon retourne false.

Exemple : matches("Merano", "ran")

Résultat : true

fn:replace(string,pattern,replace)

Remplace le motif 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", "est", "fun")

Fonctions concernant anyURI

Nom Description
fn:resolve-uri(relative,base)  

Fonctions concernant les valeurs booléennes

Nom Description
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)

Le paramètre est d'abord restauré à une valeur booléenne par la fonction boolean(). Si cette valeur booléenne est false, retourne true, 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 Description
fn:dateTime(date,time) Convertit le paramètre en date et heure.
fn:years-from-duration(datetimedur) Retourne la partie entière de l'année du paramètre sous forme de vocabulaire standard.
fn:months-from-duration(datetimedur) Retourne la partie entière du mois du paramètre sous forme de vocabulaire standard.
fn:days-from-duration(datetimedur) Retourne la partie entière du jour du paramètre sous forme de vocabulaire standard.
fn:hours-from-duration(datetimedur) Retourne l'entier des heures de la valeur, exprimé en termes standards.
fn:minutes-from-duration(datetimedur) Retourne l'entier des minutes de la valeur, exprimé en termes standards.
fn:seconds-from-duration(datetimedur) Retourne le nombre décimal des minutes de la valeur, exprimé en termes standards.
fn:year-from-dateTime(datetime)

Retourne l'entier représentant l'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 représentant le 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 représentant le 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 représentant l'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 représentant la 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 fuseau horaire du paramètre, si elle existe.
fn:year-from-date(date)

Retourne l'entier représentant l'année dans la valeur locale du paramètre.

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 jours du paramètre local.

Exemple : day-from-date(xs:date("2005-04-23"))

Résultat : 23

fn:timezone-from-date(date) Retourne la partie fuseau horaire 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 fuseau horaire du paramètre, si elle existe.
fn:adjust-dateTime-to-timezone(datetime,timezone) Si le paramètre timezone est vide, retourne un dateTime sans fuseau horaire. Sinon, retourne un dateTime avec fuseau horaire.
fn:adjust-date-to-timezone(date,timezone) Si le paramètre timezone est vide, retourne une date sans fuseau horaire. Sinon, retourne une date avec fuseau horaire.
fn:adjust-time-to-timezone(time,timezone) Si le paramètre timezone est vide, retourne un temps sans fuseau horaire. Sinon, retourne un temps avec fuseau horaire.

Fonctions liées aux QNames

Nom Description
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 liées aux noeuds

Nom Description
  • fn:name()
  • fn:name(nodeset)
Retourne le nom du noeud courant ou du premier noeud du jeu de noeuds spécifié.
  • fn:local-name()
  • fn:local-name(nodeset)
Retourne le nom du noeud courant ou du premier noeud du jeu de noeuds spécifié - sans préfixe d'espace de nom.
  • fn:namespace-uri()
  • fn:namespace-uri(nodeset)
Retourne l'URI d'espace de nom du noeud courant ou du premier noeud du jeu de noeuds spécifié.
fn:lang(lang)

Retourne true si le langage du noeud courant correspond au langage spécifié.

Exemple : Lang("en") est true pour <p xml:lang="en">...</p>

Exemple : Lang("de") est false pour <p xml:lang="en">...</p>

  • fn:root()
  • fn:root(node)
Retourne le noeud racine du noeud ou du noeud spécifié appartenant à l'arbre de noeuds. Il s'agit généralement du noeud de document.

Fonctions liées aux séquences

Fonction générale

Nom Description
fn:index-of((item,item,...),searchitem)

Retourne la position des éléments de la séquence é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 du paramètre item - supprimez l'élément spécifié 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,...)

Si la valeur du paramètre est une séquence vide, retourne true, 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 uniques.

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 de l'élément spécifié par le 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 une séquence d'éléments à partir de la position spécifiée par le paramètre start, la longueur de la séquence est déterminé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 en fonction de l'ordre déterminé par l'implémentation.

Fonction de test de la capacité de la séquence

Nom Description
fn:zero-or-one(item,item,...) Retourne l'argument si il contient zéro ou un élément, sinon génère une erreur
fn:one-or-more(item,item,...) Retourne l'argument si il contient un ou plusieurs éléments, sinon génère une erreur
fn:exactly-one(item,item,...) Retourne l'argument si il contient un élément, sinon génère une erreur

Égal, Union, Intersection et Except

Nom Description
fn:deep-equal(param1,param2,collation) Retourne true si param1 et param2 sont égaux (deep-equal), sinon retourne false

Fonction de totalisation

Nom Description
fn:count((élément,élément,...)) Retourne le nombre de nœuds
fn:avg((arg,arg,...))

Retourne la moyenne des valeurs des arguments

Exemple : avg((1,2,3))

Résultat : 2

fn:max((arg,arg,...))

Retourne l'argument supérieur à d'autres arguments

Exemple : max((1,2,3))

Résultat : 3

Exemple : max(('a', 'k'))

Résultat : 'k'

fn:min((arg,arg,...))

Retourne l'argument inférieur à d'autres arguments

Exemple : min((1,2,3))

Résultat : 1

Exemple : min(('a', 'k'))

Résultat : 'a'

fn:sum(arg,arg,...) Retourne 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 Description
fn:id((chaîne,chaîne,...),nœud) Retourne une séquence de nœuds d'élément qui ont une valeur ID égale à la valeur de l'un ou plusieurs des valeurs spécifiées dans l'argument en chaîne
fn:idref((chaîne,chaîne,...),nœud) Retourne une séquence de nœuds d'élément ou d'attribut qui ont une valeur IDREF égale à la valeur de l'un ou plusieurs des valeurs spécifiées dans l'argument en chaîne
fn:doc(URI)  
fn:doc-available(URI) Retourne true si la fonction doc() retourne un nœud de document, sinon retourne false.
  • fn:collection()
  • fn:collection(string)
 

Fonctions de contexte

Nom Description
fn:position()

Retourner la position index du nœud traité en cours.

Exemple : //book[position()<=3]

Résultat : sélection des trois premiers éléments book

fn:last()

Retourner le nombre d'éléments dans la liste de nœuds traités.

Exemple : //book[last()]

Résultat : sélection de l'élément book dernier

fn:current-dateTime() Retourner le dateTime actuel (avec le fuseau horaire).
fn:current-date() Retourner la date actuelle (avec le fuseau horaire).
fn:current-time() Retourner l'heure actuelle (avec le fuseau 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.