• Aucun résultat trouvé

La désignation peut se faire de plusieurs manières : 1 – Par le nom (par le chemin),

N/A
N/A
Protected

Academic year: 2022

Partager "La désignation peut se faire de plusieurs manières : 1 – Par le nom (par le chemin),"

Copied!
15
0
0

Texte intégral

(1)

Le langage Xpath

Définition

Xpath est le langage de parcours de l'arbre XML et de désignation des nœuds

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)

1- Xpath, désignation par le nom

- Le nœud 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.

- Le nœud courant est donné par : "."

- Le nœud de nom "x"

- Le nœud de nom "x"

– Désignation directe :

//x

– Désignation par le chemin ou le niveau:

/nom1/nom2/…/x

//nom1/nom2/…/x

/*/*/*/nom

(3)

1- Xpath, désignation par le nom

AAA : sélectionne l'élément racine AAA

<AAA>

<BBB/>

On peut également écrire une feuille de style avec comme règle:

<xsl:template match="/">

<xsl:value-of select="AAA"/>

<BBB/>

<CCC/>

<BBB/>

<BBB/>

<DDD>

<BBB/>

</DDD>

<CCC/>

</AAA>

<xsl:value-of select="AAA"/>

</xsl:template>

(4)

1- Xpath désignation par le chemin

/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>>

<AAA>

<BBB/>

<CCC/>

<BBB/>

<BBB/>

<DDD>

<BBB/>

</DDD>

<CCC/>

</AAA>

(5)

1- Xpath désignation par le chemin

//BBB

Sélectionne tous les éléments BBB

<AAA>

<BBB/>

<CCC/>

<BBB/>

//DDD/BBB

Sélectionne tous les éléments BBB qui sont enfants de DDD

<AAA>

<BBB/>

<CCC/>

<BBB/>

<BBB/>

<DDD>

<BBB/>

</DDD>

<CCC>

<DDD>

<BBB/>

<BBB/>

</DDD>

<CCC/>

</AAA>>

<BBB/>

<DDD>

<BBB/>

</DDD>

<CCC>

<DDD>

<BBB/>

<BBB/>

</DDD>

<CCC/>

</AAA>>

(6)

1- Xpath désignation par le chemin

/AAA/CCC/DDD/*

Sélectionne tous les éléments inclus dans le chemin /AAA/CCC/DDD

/*/*/*/BBB /*/*/*/BBB

Sélectionne tous les éléments BBB qui ont trois ancêtres

//*

Sélectionne tous les éléments

(7)

2- Xpath désignation par le prédicat

Fonctions de sélection:

element[n]

– sélectionne le nième élément element dans le nœud courant element[elt]

– sélectionne dans le nœud courant, l'élément element qui a comme – sélectionne dans le nœud courant, l'élément element qui a comme élément fils elt

element[@attribut]

– sélectionne dans le nœud courant, l'élément element qui possède un attribut attribut

[@attribut='valeur']

– sélectionne dans le nœud courant, l'élément dont l'attribut attribut a

une valeur égale à valeur

(8)

2- Xpath désignation par le prédicat

Un nombre entre crochets donne la position d'un

élément dans le jeu sélectionné .

/AAA/BBB[1]

Sélectionne le premier élément

La fonction last sélectionne le dernier élément du jeu

/AAA/BBB[last()]

Sélectionne le dernier élément BBB,

fils de l'élément racine AAA Sélectionne le premier élément

BBB, fils de l'élément racine AAA

<AAA>

<BBB/>

<BBB/>

<BBB/>

<BBB/>

</AAA>

fils de l'élément racine AAA

<AAA>

<BBB/>

<BBB/>

<BBB/>

<BBB/>

</AAA>

(9)

2- Xptah désignation où le prédicat=l’attribut

Les attributs sont spécifiés par le préfixe @

//@id

Sélectionne tous les attributs id

//BBB[@id]

Sélectionne tous les BBB qui ont un attribut id

<AAA>

<BBB id="b1"/>

<BBB id="b2"/>

<BBB name="bbb"/>

<BBB/>

</AAA>

qui ont un attribut id

<AAA>

<BBB id="b1"/>

<BBB id="b2"/>

<BBB name="bbb"/>

<BBB/>

</AAA>

(10)

2- Xptah désignation où le prédicat=l’attribut

Les attributs sont spécifiés par le préfixe @

//BBB[@name]

Sélectionne tous BBB qui ont un attribut name

//BBB[@*]

Sélectionne tous les BBB qui ont un attribut

ont un attribut name

<AAA>

<BBB id="b1"/>

<BBB id="b2"/>

<BBB name="bbb"/>

<BBB/>

</AAA>

qui ont un attribut

<AAA>

<BBB id="b1"/>

<BBB id="b2"/>

<BBB name="bbb"/>

<BBB/>

</AAA>

(11)

2- Xptah désignation où le prédicat=l’attribut

//BBB[not(@*)]

Sélectionne tous les BBB qui n'ont pas d'attribut

<AAA>

<AAA>

<BBB id="b1"/>

<BBB id="b2"/>

<BBB name="bbb"/>

<BBB/>

</AAA>

(12)

2- Xptah désignation où le prédicat=l’attribut

Les valeurs d'attributs peuvent être utilisées comme critère de sélection

//BBB[@id='b1']

Sélectionne tous les éléments

//BBB[@name='bbb']

Sélectionne tous les éléments BBB ayant un attribut name dont la

Sélectionne tous les éléments BBB ayant un attribut id dont la valeur est b1

<AAA>

<BBB id = "b1"/>

<BBB name = " bbb "/>

<BBB name = "bbb"/>

</AAA>

attribut name dont la valeur est bbb

<AAA>

<BBB id = "b1"/>

<BBB name = " bbb "/>

<BBB name = "bbb"/>

</AAA>

(13)

2- Xptah désignation où le prédicat=fonction

//*[count(BBB)=2]

Sélectionne les éléments ayant deux enfants BBB

<AAA>

<CCC>

<BBB/>

<BBB/>

//*[count(*)=2]

Sélectionne les éléments ayant deux enfants

<AAA>

<CCC>

<BBB/>

<BBB/>

<BBB/>

<BBB/>

</CCC>

<DDD>

<BBB/>

<BBB/>

</DDD>

<EEE>

<CCC/>

<DDD/>

</EEE>

</AAA>

<BBB/>

<BBB/>

</CCC>

<DDD>

<BBB/>

<BBB/>

</DDD>

<EEE>

<CCC/>

<DDD/>

</EEE>

(14)

3- Xptah alternatives et combinaisons

Plusieurs chemins peuvent être combinés avec le

séparateur |

//CCC | //BBB

Sélectionne tous les éléments CCC et BBB

/AAA/EEE | //BBB Sélectionne tous les

éléments BBB et EEE qui sont enfants de l'élément racine AAA

CCC et BBB

<AAA>

<BBB/>

<CCC/>

<DDD>

<CCC/>

</DDD>

<EEE/>

</AAA>

<AAA>

<BBB/>

<CCC/>

<DDD>

<CCC/>

</DDD>

<EEE/>

</AAA>

(15)

3- Xptah alternatives et combinaisons

/AAA/EEE | //DDD/CCC | /AAA | //BBB

Le nombre de combinaisons n'est pas restreint

<AAA>

<BBB/>

<BBB/>

<CCC/>

<DDD>

<BBB/>

<CCC/>

</DDD>

<EEE/>

</AAA>

Références

Documents relatifs

Tous les chemins reçus qui portent un attribut de communauté qui contient cette valeur NE DOIVENT PAS être annoncés en dehors des frontières d'une confédération BGP ( un

Remarque: Les bracelets, ainsi que les autres objets dans lesquels se trouvent fixées des montres de poche, de bracelet et similaires, à condition de pouvoir en être détachés,

Un adjectif qualificatif peut être soit épithète s'il qualifie un nom, soit attribut s’il donne des informations sur un sujet?. L’adjectif qualificatif

Extraits des documents de référence joints au présent état et permettant la localisation de l'immeuble au regard des risques pris en compte Carte Sismicité, Carte Inondation par

La première vise à connaître la désignation des commerciaux dans l’entreprise, pour : les postes de commercial terrain, commercial sédentaire, les postes à

La gouvernance envisagée pour l’eurozone la place sur une trajectoire de collision frontale avec le modèle social. En fait sans véritable solidarité financière, budgétaire, sociale

le responsable peut choisir d’instaurer des mesures d’isolement s’il estime qu’il est plus sûr pour les élèves et pour le personnel de rester dans la salle de classe ou dans

Les gentils voisins nous ont redonné notre ballon qui avait atterri dans leur potager.. La grande girafe du zoo