Glossaire I
Soit le fichier XML suivant permettant de représenter un glossaire.
<?xml version="1.0" encoding="UTF-8"?>
<glossaire>
<definition id="xml">
<terme>XML</terme>
<explication>XML est un méta-langage.</explication>
</definition>
<definition id="sgml">
<terme>SGML</terme>
<explication>SGML est un méta-langage.</explication>
<voirAussi ref="xml"/>
</definition>
</glossaire>
Pour les cinq questions suivantes, le nœud courant est glossaire
.
Question
Que renvoie l'expression XPath suivante : ./*
Solution
<definition id="xml">
<terme>XML</terme>
<explication>XML est un méta-langage.</explication>
</definition>
<definition id="sgml">
<terme>SGML</terme>
<explication>SGML est un méta-langage.</explication>
<voirAussi ref="xml"/>
</definition>
Question
Que renvoie l'expression XPath suivante : ./explication
Solution
Rien
Question
Que renvoie l'expression XPath suivante : //terme/text()
Solution
XML
SGML
Question
Écrire le XPath permettant de renvoyer les nœuds terme
, qui ont definition
comme père.
Solution
./definition/terme
(ou //definition/terme
)
Question
Écrire le XPath permettant de renvoyer les nœuds voirAussi
qui ont la valeur xml
pour leur attribut ref
..
Solution
./definition/voirAussi[@ref='xml']
(ou //voirAussi[@ref='xml']
)
Pour les trois questions suivantes, le nœud courant est le premier nœud definition
, celui dont l'attribut id="xml"
.
Question
Écrire le XPath permettant de renvoyer les nœuds voirAussi
qui ont la valeur xml
pour leur attribut ref
.
Solution
../definition/voirAussi[@ref='xml']
Question
Écrire le XPath permettant de renvoyer les nœuds definition
qui contiennent un élément voirAussi
qui a la valeur xml
pour son attribut ref
.
Solution
../definition[voirAussi/@ref='xml']
Question
Écrire le XPath permettant de renvoyer le texte des nœuds terme
fils des definition
qui contiennent un élément voirAussi
qui a la valeur xml
pour son attribut ref
.
Solution
../definition[voirAussi/@ref='xml']/terme/text()
Pour les deux questions suivantes, le nœud courant est un nœud definition
quelconque.
Question
Écrire le XPath permettant de tester si le nœud courant contient un élément voirAussi
qui se référence lui même (qui a la même valeur pour ref
que l'attribut id
).
Solution
./voirAussi/@ref=@id
Question
Écrire le XPath permettant de renvoyer les nœuds suivants qui se référencent eux-mêmes.
Solution
following::definition[voirAussi/@ref=@id]