Vous êtes sur la page 1sur 2

Bases de données et web – L3 Info & L3 MIASHS

XPATH TD2 – Sujet

TD2 – XPath
Exercice 1
Considérons l’arbre XML suivant.

Donnez les résultats des requêtes XPath suivantes.

1. /descendant::B[1]/descendant::text()
2. /descendant::B[1]/descendant::text()[1]
3. /descendant::B/descendant::text()[1]
4. /descendant::B/D/text()[1]

Exercice 2
Expliquez la différence entre les requêtes suivantes. Puis, donnez un exemple pour lequel le résultat
est identique et un exemple pour lequel on n’obtient pas le même résultat.

— //livre[titre="edition"]
— //livre[titre=edition]

Exercice 3
Expliquez la signification des requêtes suivantes. Lesquelles donneront toujours le même résultat ?
1. /item/livre[@titre="bda" and position()=last()]
2. /item/livre[@titre="bda"] [position()=last()]

1
3. /item/livre[position()=last()] [@titre="bda"]
Donnez un exemple pour lequel les trois requêtes ne donnent pas toutes le même résultat.

Exercice 4
On considère le fichier XML suivant, qui représente le stock d’un maraîcher. Donnez les requêtes
XPath pour sélectionner les éléments suivants (ces requêtes doivent fonctionner sur tout document
de même nature que l’exemple).

1. Les producteurs de fruits.


2. Les légumes produits en Espagne.
3. Les origines des clémentines issues de l’agriculture biologique.
4. Les producteurs bretons.

<?xml version=" 1 . 0 " e n c o d i n g=" u t f −8" ?>


<p r o d u i t s>
< f r u i t t y p e=" c l e m e n t i n e " p r i x=" 290 " c a l i b r e=" 1 ">
<p r o d u c t e u r>P r o d u c t i o n B a s t i a</ p r o d u c t e u r>
< o r i g i n e r e g i o n=" Corse ">France</ o r i g i n e>
<q t i t y>15</ q t i t y>
<n o t e>Sans p e p i n s , a v e c f e u i l l e s</ n o t e>
<b i o />
</ f r u i t>
< f r u i t t y p e=" c l e m e n t i n e " p r i x=" 290 " c a l i b r e=" 1 ">
<p r o d u c t e u r>P r o d u c t i o n B a s t i a</ p r o d u c t e u r>
< o r i g i n e r e g i o n=" Corse ">France</ o r i g i n e>
<q t i t y>15</ q t i t y>
<n o t e>Sans p e p i n s , a v e c f e u i l l e s</ n o t e>
</ f r u i t>
<legume t y p e=" c o u r g e t t e " p r i x=" 300 " c a l i b r e=" 2 ">
<p r o d u c t e u r>Madrid H o r t e l a n o</ p r o d u c t e u r>
< o r i g i n e>Espagne</ o r i g i n e>
<q t i t y>100</ q t i t y>
<b i o />
</ legume>
<legume t y p e=" c h o u f l e u r " p r i x=" 090 " c a l i b r e=" 2 ">
<p r o d u c t e u r>Pontivy e t Cie</ p r o d u c t e u r>
< o r i g i n e r e g i o n=" B r e t a g n e ">France</ o r i g i n e>
<q t i t y>100</ q t i t y>
</ legume>
<legume t y p e=" s a l a d e " p r i x=" 075 " c a l i b r e=" 3 ">
<p r o d u c t e u r>Marius P r o d u c t i o n</ p r o d u c t e u r>
< o r i g i n e r e g i o n=" Provence ">France</ o r i g i n e>
<q t i t y>35</ q t i t y>
<n o t e>B a t a v i a</ n o t e>
</ legume>
< f r u i t t y p e=" melon " p r i x=" 150 " c a l i b r e=" 1 ">
<p r o d u c t e u r>Marius P r o d u c t i o n</ p r o d u c t e u r>
< o r i g i n e r e g i o n=" Provence ">France</ o r i g i n e>
<q t i t y>50</ q t i t y>
<n o t e>Melon brode</ n o t e>
<b i o />
</ f r u i t>
</ p r o d u i t s>

Vous aimerez peut-être aussi