Le Langage Xpath
1) Définition:
Xpath est le langage de parcours de l'arbre XML et de désignation des noeuds.
La désignation peut se faire de plusieurs manières :
1 – Par le nom (par le chemin),
2 – Par une propriété (prédicat le qualifiant),
3 - Alternatives et combinaisons.
2) Xpath,Désignation par le Nom :
Le noeud de départ ou racine est donné par : "/" Si le chemin commence
par '/', alors il représente un chemin absolu vers l'élément requis.
– Désignation directe : //x
Exemple : Soit le document xml suivant :
<AAA>
<BBB/>
<CCC/>
<BBB/>
<BBB/>
<DDD>
<BBB/>
</DDD>
<CCC/>
</AAA>
/AAA/CCC Sélectionne tous les éléments CCC qui sont enfants de l'élément
racine AAA
/AAA/DDD/BBB Sélectionne tous les éléments BBB qui sont enfants de DDD,
qui sont enfants de l'élément racine AAA
<AAA>
<BBB/>
<CCC/>
<BBB/>
<BBB/>
<DDD>
<BBB/>
</DDD>
<CCC/>
</AAA>
//BBB Sélectionne tous les éléments BBB
//DDD/BBB Sélectionne tous les éléments BBB qui sont enfants de DDD
//* Sélectionne tous les éléments
/AAA/CCC/DDD/* Sélectionne tous les éléments inclus dans le chemin
//@* Sélectionne tous les attributs
2) Xpath,Désignation par le Prédicat:
Fonctions de sélection:
produit[designation]:
– sélectionne dans le noeud courant, l'élément produit qui a comme élément
enfant designation
personne[@sexe]
– sélectionne dans le noeud courant, l'élément personne qui possède un attribut
sexe
personne [@sexe=‘femme']
– sélectionne dans le noeud courant, l'élément dont l'attribut sexe a une valeur
égale à femme
[i]:Un nombre entre crochets donne la position d'un élément dans le jeu
sélectionné. Ex : /AAA/BBB[1]
Position(i): Retourne la position, ou numéro d'index, du nœud, par rapport à
tous les nœuds sélectionnés dans la liste de nœuds. Ex: //B[Position()=2]
Last(): La fonction last sélectionne le dernier élément du jeu. Ex: /AAA/BBB[last()]
Les attributs sont spécifiés par le préfixe @. Ex:
//BBB[@id]: Sélectionne tous les BBB qui ont un attribut id
//BBB[@*] : Sélectionne tous les BBB qui ont un attribut.
//BBB[not(@*)] : Sélectionne tous les BBB qui n'ont pas d'attribut
//BBB[@name=‘HIND']:Sélectionne tous les éléments BBB ayant un attribut
name dont la valeur est HIND
Count() : compte les éléments de la sélection. Ex:
//*[count(BBB)=2] : Sélectionne les éléments ayant deux enfants BBB
//*[count(*)=2] : Sélectionne les éléments ayant deux enfants
Name() : Nom de l’élément . Ex:
//*[Name() = “personne”]: sélectionne tous les éléments qui s’appelle personne
Contains: condition sur les chaines de caractères. Ex:
//*[Contains(name()==“H”): tout les éléments qui contient le caractère H
Startswith():condition sur les chaines de caractères. Ex:
//*[Startswith(name()==“M”): tout les éléments qui commence par le caractère
M
Text() : tous les noeuds de type textuels. Ex:
//question[2]/text() : la 2eme question sous format text
Utilisation d’opérateurs :
Ex: //*[@att=‘en’ and name()=’B’]
Quelques exemples:
3) Xpath,Alternative et combinaison:
Plusieurs chemins peuvent être combinés avec le séparateur |
Exemple:
//CCC | //BBB : Sélectionne tous les éléments CCC et BBB
/AAA/EEE | //BBB: Sélectionne tous leséléments BBB et EEE quisont enfants
de l'élément racine AAA
MERCI POUR VOTRE
ATTENTION