Derniers tutoriels de développement web
 

XSLT XPath et XQuery Fonctions


XSLT 2.0, XPath 2.0, et XQuery 1.0, partagent la même bibliothèque de fonctions.


fonctions de référence

Le préfixe par défaut pour l'espace de noms est fonction fn:
L'URI de l'espace de noms de fonction est: http://www.w3.org/2005/xpath-functions

Tip: Les fonctions sont souvent appelées à la fn: préfixe, tel que fn: string() . Cependant, étant donné que fn: est le préfixe par défaut de l'espace de noms, les noms de fonctions ne doivent pas nécessairement être préfixé lorsqu'il est appelé.

Fonctions accesseurs

prénom La description
fn:node- name( node ) Retourne le nœud nom du noeud d'argument
fn: nilled( node ) Renvoie une valeur booléenne indiquant si le noeud d'argument est nilled
fn: data( item.item,... ) Prend une séquence d'éléments et renvoie une séquence de valeurs atomiques
fn:base- uri()
fn:base- uri( node )
Renvoie la valeur de la propriété de base-uri du noeud courant ou spécifié
fn:document- uri( node ) Renvoie la valeur de la propriété document uri pour le noeud spécifié

Fonctions d' erreur et Trace

prénom La 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') , 'Erreur: Le prix est trop élevé)

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

fn: trace( value,label ) Utilisé pour les requêtes de débogage

Fonctions sur les valeurs numériques

prénom La description
fn: number( arg ) Renvoie la valeur numérique de l'argument. L'argument pourrait être une valeur booléenne, une chaîne ou ensemble de nœuds

Exemple: number('100')
Résultat: 100

fn: abs( num ) Renvoie la valeur absolue de l'argument

Exemple: abs(3.14)
Résultat: 3.14

Exemple: abs(-3.14)
Résultat: 3.14

fn: ceiling( num ) Retourne le plus petit entier qui est supérieur à l'argument numéro

Exemple: ceiling(3.14)
Résultat: 4

fn: floor( num ) Renvoie le plus grand entier qui ne dépasse pas l'argument numéro

Exemple: floor(3.14)
Résultat: 3

fn: round( num ) Arrondit l'argument nombre entier le plus proche

Exemple: round(3.14)
Résultat: 3

fn:round-half-to- even() Exemple: ronde demi-to- even(0.5)
Résultat: 0

Exemple: ronde demi-to- even(1.5)
Résultat: 2

Exemple: ronde demi-to- even(2.5)
Résultat: 2

Fonctions sur les chaînes

prénom La description
fn: string( arg ) Renvoie la valeur de chaîne de l'argument. L'argument peut être un nombre, booléen ou ensemble de nœuds

Exemple: string(314)
Résultat: "314"

fn:codepoints-to- string(( int,int,... ) ) Crée une chaîne à partir d'une séquence de points de code Unicode

Exemple: codepoints-to- string((84, 104, 233, 114, 232, 115, 101) )
Résultat: 'Thrse'

fn:string-to- codepoints( string ) Renvoie la séquence des points de code standard Unicode d'une chaîne

Exemple: string-to- codepoints("Th r se")
Résultat: (84, 104, 233, 114, 232, 115, 101)

fn:codepoint- equal( comp1,comp2 ) Renvoie true si la valeur de COMP1 est égale à la valeur de COMP2, selon le classement point de code Unicode (http://www.w3.org/2005/02/xpath-functions/collation/codepoint) , sinon il retourne faux
fn: compare( comp1,comp2 )
fn: compare( comp1,comp2,collation )
Renvoie -1 si COMP1 est inférieure à COMP2, 0 si COMP1 est égal à COMP2, ou si une COMP1 est supérieure à COMP2 (selon les règles de la collation qui est utilisé)

Exemple: compare('ghi', 'ghi')
Résultat: 0

fn: concat( string,string,... ) Renvoie la concaténation des chaînes

Exemple: concat('XPath ','is ','FUN!')
Résultat: 'XPath est FUN!

fn:string- join( (string,string,...) ,sep) Retourne une chaîne créée en concaténant les arguments de chaîne et en utilisant l'argument comme séparateur septembre

Exemple: string- join(('We', 'are', 'having', 'fun!') , ' « )
Résultat: «Nous amusons! '

Exemple: string- join(('We', 'are', 'having', 'fun!') )
Résultat: «Wearehavingfun!

Exemple: string- join(() , 'septembre')
Résultat: ''

fn: substring( string,start,len )
fn: substring( string,start )
Renvoie la sous-chaîne à partir de la position de départ à la longueur spécifiée. Index du premier caractère est 1. Si la longueur est omis, il retourne la sous-chaîne de la position de début à la fin

Exemple: substring('Beatles',1,4) - substring('Beatles',1,4)
Résultat: 'Beat'

Exemple: substring('Beatles',2)
Résultat: '' eatles

fn:string- length( string )
fn:string- length()
Renvoie la longueur de la chaîne spécifiée. S'il n'y a pas d'argument de chaîne, elle renvoie la longueur de la valeur de chaîne du noeud courant

Exemple: string- length('Beatles')
Résultat: 7

fn:normalize- space( string )
fn:normalize- space()
Supprime les espaces de fuite de la chaîne spécifiée et remplace toutes les séquences internes de l'espace blanc avec une et renvoie le résultat. S'il n'y a pas d'argument de chaîne, il fait la même chose sur le noeud courant

Exemple: normalize- space(' The XML ')
Résultat: « Le XML »

fn:normalize- unicode()
fn:upper- case( string ) Convertit l'argument de chaîne en majuscules

Exemple: majuscules case('The XML')
Résultat: « le XML »

fn:lower- case( string ) Convertit l'argument de chaîne en minuscules

Exemple: Lower- case('The XML')
Résultat: « xml »

fn: translate( string1,string2,string3 ) Chaine1 convertit en remplaçant les caractères en chaine2 avec les caractères string3

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: échapper-uri ("http://example.com/~b b ", false() )
Résultat: "http://example.com/~b%C3%A9b%C3%A9"

fn: contains( string1,string2 ) Renvoie true si string1 contient chaine2, sinon il retourne faux

Exemple: contains('XML','XM')
Résultat: true

fn:starts- with( string1,string2 ) Renvoie true si string1 commence par chaine2, sinon il retourne faux

Exemple: starts- with('XML','X')
Résultat: true

fn:ends- with( string1,string2 ) Renvoie true si string1 se termine par chaine2, sinon il retourne faux

Exemple: extrémités- with('XML','X')
Résultat: false

fn:substring- before( string1,string2 ) Renvoie le début de chaine1 avant chaine2 se produit en elle

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

fn:substring- after( string1,string2 ) Renvoie le reste de chaine1 après chaine2 se produit en elle

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

fn: matches( string,pattern ) Renvoie true si l'argument de chaîne correspond au motif, sinon, il retourne faux

Exemple: matches("Merano", "ran")
Résultat: true

fn: replace( string,pattern,replace ) Renvoie une chaîne qui est créé par le remplacement du modèle donné par l'argument remplacer

Exemple: replace("Bella Italia", "l" , "*")
Résultat: 'Soyez ** un 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 pour anyURI

prénom La description
fn:resolve- uri( relative,base )

Fonctions sur les valeurs booléennes

prénom La description
fn: boolean( arg ) Renvoie une valeur booléenne pour un certain nombre, chaîne ou node-set
fn: not( arg ) L'argument est d' abord réduit à une valeur booléenne en appliquant le boolean() fonction. Renvoie true si la valeur booléenne est fausse, et false si la valeur booléenne est vraie

Exemple: not(true() )
Résultat: false

fn: true() Renvoie la valeur booléenne true

Exemple: true()
Résultat: true

fn: false() Renvoie la valeur booléenne false

Exemple: false()
Résultat: false

Fonctions sur la durée, dates et heures

Fonctions d'extraction des composants sur Durées, Dates et heures

prénom La description
fn: dateTime( date,time ) Convertit les arguments à une date et une heure
fn:years-from- duration( datetimedur ) Renvoie un nombre entier qui représente le composant années dans la représentation lexicale canonique de la valeur de l'argument
fn:months-from- duration( datetimedur ) Renvoie un nombre entier qui représente le composant de mois dans la représentation lexicale canonique de la valeur de l'argument
fn:days-from- duration( datetimedur ) Renvoie un nombre entier qui représente le jour composant dans la représentation lexicale canonique de la valeur de l'argument
fn:hours-from- duration( datetimedur ) Renvoie un nombre entier qui représente le composant d'heures dans la représentation lexicale canonique de la valeur de l'argument
fn:minutes-from- duration( datetimedur ) Renvoie un nombre entier qui représente le composant minutes dans la représentation lexicale canonique de la valeur de l'argument
fn:seconds-from- duration( datetimedur ) Renvoie un nombre décimal qui représente le composant de secondes dans la représentation lexicale canonique de la valeur de l'argument
fn:year-from- dateTime( datetime ) Renvoie un nombre entier qui représente la composante de l'année de la valeur localisée de l'argument

Exemple: année-From- dateTime(xs:dateTime("2005-01-10T12:30-04:10") )
Résultat: 2005

fn:month-from- dateTime( datetime ) Renvoie un nombre entier qui représente le composant de mois de la valeur localisée de l'argument

Exemple: mois-From- dateTime(xs:dateTime("2005-01-10T12:30-04:10") )
Résultat: 01

fn:day-from- dateTime( datetime ) Renvoie un nombre entier qui représente le composant de jour de la valeur de l'argument localisé

Exemple: day-From- dateTime(xs:dateTime("2005-01-10T12:30-04:10") )
Résultat: 10

fn:hours-from- dateTime( datetime ) Renvoie un nombre entier qui représente le composant d'heure de la valeur localisée de l'argument

Exemple: heure-From- dateTime(xs:dateTime("2005-01-10T12:30-04:10") )
Résultat: 12

fn:minutes-from- dateTime( datetime ) Renvoie un nombre entier qui représente la composante minutes de la valeur localisée de l'argument

Exemple: minutes-From- dateTime(xs:dateTime("2005-01-10T12:30-04:10") )
Résultat: 30

fn:seconds-from- dateTime( datetime ) Renvoie un nombre décimal qui représente le composant de secondes dans la valeur localisée de l'argument

Exemple: secondes-From- dateTime(xs:dateTime("2005-01-10T12:30:00-04:10") )
Résultat: 0

fn:timezone-from- dateTime( datetime ) Renvoie le composant de temps de zone de l'argument le cas échéant
fn:year-from- date( date ) Renvoie un entier qui représente l'année de la valeur localisée de l'argument

Exemple: année From- date(xs:date("2005-04-23") )
Résultat: 2005

fn:month-from- date( date ) Renvoie un nombre entier qui représente le mois de la valeur localisée de l'argument

Exemple: mois-From- date(xs:date("2005-04-23") )
Résultat: 4

fn:day-from- date( date ) Renvoie un nombre entier qui représente le jour de la valeur de l'argument localisé

Exemple: jour-From- date(xs:date("2005-04-23") )
Résultat: 23

fn:timezone-from- date( date ) Renvoie le composant de temps de zone de l'argument le cas échéant
fn:hours-from- time( time ) Renvoie un nombre entier qui représente le composant d'heure de la valeur localisée de l'argument

Exemple: heures-From- time(xs:time("10:22:00") )
Résultat: 10

fn:minutes-from- time( time ) Renvoie un nombre entier qui représente la composante minutes de la valeur localisée de l'argument

Exemple: minutes-From- time(xs:time("10:22:00") )
Résultat: 22

fn:seconds-from- time( time ) Renvoie un nombre entier qui représente le composant de secondes dans la valeur localisée de l'argument

Exemple: secondes-From- time(xs:time("10:22:00") )
Résultat: 0

fn:timezone-from- time( time ) Renvoie le composant de temps de zone de l'argument le cas échéant
fn:adjust-dateTime-to- timezone( datetime,timezone ) Si l'argument de fuseau horaire est vide, il renvoie un dateTime sans fuseau horaire. Dans le cas contraire, il retourne un dateTime avec un fuseau horaire
fn:adjust-date-to- timezone( date ,timezone ) Si l'argument de fuseau horaire est vide, elle renvoie une date sans fuseau horaire. Dans le cas contraire, elle renvoie une date avec un fuseau horaire
fn:adjust-time-to- timezone( time ,timezone ) Si l'argument de fuseau horaire est vide, il retourne un temps sans fuseau horaire. Dans le cas contraire, il retourne un temps avec un fuseau horaire

Fonctions liées à QNames

prénom La 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 sur les nœuds

prénom La description
fn: name()
fn: name( nodeset )
Renvoie le nom du noeud courant ou le premier noeud dans le jeu de noeud spécifié
fn:local- name()
fn:local- name( nodeset )
Retourne le nom du noeud courant ou le premier noeud dans le jeu de noeud spécifié - sans le préfixe d'espace de noms
fn:namespace- uri()
fn:namespace- uri( nodeset )
Renvoie l'URI de l'espace de nom du noeud courant ou le premier noeud dans le noeud spécifié ensemble
fn: lang( lang ) Renvoie true si la langue du noeud courant correspond à la langue de la langue spécifiée

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

Exemple: Lang("de") est fausse
<P xml: lang = "fr"> ... </ p>

fn: root()
fn: root( node )
Retourne la racine de l'arbre auquel le nœud actuel ou spécifié appartient. Ce sera généralement un nœud de document

Fonctions sur les séquences

Fonctions générales sur Sequences

prénom La description
fn:index- of( (item,item,...) ,searchitem) Renvoie les positions dans la séquence d'éléments qui sont égaux à l'argument searchitem

Exemple: indice du ((15, 40, 25, 40, 10) , 40)
Résultat: (2, 4)

Exemple: indice de (("a", "dog" , "and" , "a" , "duck") , "a")
Résultat (1, 4)

Exemple: indice du ((15, 40, 25, 40, 10) , 18)
Résultat: ()

fn: remove( (item,item,...) ,position) Renvoie une nouvelle séquence construite à partir de la valeur des arguments de l'objet - à l'élément spécifié par l'argument de position retirée

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,... ) Renvoie true si la valeur des arguments est une séquence vide, sinon il retourne faux

Exemple: empty(remove(("ab", "cd") , 1))
Résultat: false

fn: exists( item,item,... ) Renvoie true si la valeur des arguments n'est pas une séquence vide, sinon il retourne faux

Exemple: exists(remove(("ab") , 1))
Résultat: false

fn:distinct- values( (item,item,...) ,collation) Renvoie uniquement distinctes (different) valeurs

Exemple: distinct- values((1, 2, 3, 1, 2) )
Résultat: (1, 2, 3)

fn:insert- before( (item,item,...) ,pos,inserts) Renvoie une nouvelle séquence construite à partir de la valeur des arguments de l'objet - à la valeur de l'argument des inserts insérés dans la position indiquée par l'argument pos

Exemple: Insérer- before(("ab", "cd") , 0, "gh")
Résultat: ("gh", "ab" , "cd")

Exemple: Insérer- before(("ab", "cd") , 1, "gh")
Résultat: ("gh", "ab" , "cd")

Exemple: Insérer- before(("ab", "cd") , 2, "gh")
Résultat: ("ab", "gh" , "cd")

Exemple: Insérer- before(("ab", "cd") , 5, "gh")
Résultat: ("ab", "cd" , "gh")

fn: reverse( (item,item,...) ) Renvoie 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 de la position spécifiée par l'argument de départ et continue du nombre d'éléments spécifiés par l'argument len. Le premier élément se trouve en position 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,...) ) Renvoie les éléments dans un ordre dépendant de la mise en œuvre

Fonctions qui testent la cardinalité des séquences

prénom La description
fn:zero-or- one( item,item,... ) Retourne l'argument si elle contient zéro ou un des éléments, sinon il déclenche une erreur
fn:one-or- more( item,item,... ) Retourne l'argument si elle contient un ou plusieurs éléments, sinon il déclenche une erreur
fn:exactly- one( item,item,... ) Retourne l'argument si elle contient exactement un élément, sinon il déclenche une erreur

Equals, union, intersection et à l'exception

prénom La description
fn:deep- equal( param1,param2,collation ) Renvoie true si param1 et param2 sont profondément égaux entre eux, sinon il retourne faux

Les fonctions d'agrégation

prénom La description
fn: count( (item,item,...) ) Retourne le nombre de nœuds
fn: avg( (arg,arg,...) ) Renvoie la moyenne des valeurs des arguments

Exemple: avg((1,2,3) )
Résultat: 2

fn: max( (arg,arg,...) ) Renvoie l'argument qui est plus grand que les autres

Exemple: max((1,2,3) )
Résultat: 3

Exemple: max(('a', 'k') )
Résultat: 'k'

fn: min( (arg,arg,...) ) Renvoie l'argument qui est moins que les autres

Exemple: min((1,2,3) )
Résultat: 1

Exemple: min(('a', 'k') )
Résultat: 'a'

fn: sum( arg,arg,... ) Renvoie la somme de la valeur numérique de chaque noeud spécifié dans le noeud-ensemble

Fonctions qui génèrent des séquences

prénom La description
fn: id( (string,string,...) ,node) Renvoie une séquence de noeuds d'élément ayant une valeur d'identification égale à la valeur d'un ou de plusieurs des valeurs spécifiées dans l'argument de chaîne
fn: idref( (string,string,...) ,node) Renvoie une séquence d'éléments ou noeuds attribut ayant une valeur de IDREF égale à la valeur d'un ou de plusieurs des valeurs spécifiées dans l'argument de chaîne
fn: doc( URI )
fn:doc- available( URI ) Renvoie true si la doc() renvoie un nœud de document, sinon il retourne faux
fn: collection()
fn: collection( string )

Fonctions de contexte

prénom La description
fn: position() Renvoie la position d'index du noeud qui est actuellement en cours de traitement

Exemple: // livre [ position() <= 3]
Résultat: Sélectionne les trois premiers éléments du livre

fn: last() Retourne le nombre d'éléments dans la liste des nœuds traités

Exemple: // livre [ last() ]
Résultat: Sélectionne le dernier élément du livre

fn:current- dateTime() Retourne le dateTime courant (with timezone)
fn:current- date() Renvoie la date actuelle (with timezone)
fn:current- time() Renvoie l'heure actuelle (with timezone)
fn:implicit- timezone() Renvoie la valeur du fuseau horaire implicite
fn:default- collation() Renvoie la valeur de la collation par défaut
fn:static-base- uri() Renvoie la valeur de la base-uri

Fonctions XSLT

De plus, il y a les fonctions suivantes XSLT intégré:

prénom La description
current() Retourne le noeud courant
document() Permet d'accéder aux nœuds dans un document XML externe
element- available() Teste si l'élément spécifié est pris en charge par le processeur XSLT
format- number() Convertit un nombre en une chaîne
function- available() Teste si la fonction spécifiée est prise en charge par le processeur XSLT
generate- id() Renvoie une valeur de chaîne qui identifie de manière unique un noeud spécifié
key() Renvoie un ensemble de noeuds en utilisant l'index spécifié par un <xsl:key> élément
system- property() Renvoie la valeur des propriétés du système
unparsed-entity- uri() Renvoie l'URI d'une entité non analysée