0% ont trouvé ce document utile (0 vote)
18 vues6 pages

TP XPath Solution

Le document présente des exercices pratiques sur le langage XPath pour des étudiants en informatique, comprenant des requêtes sur des fichiers XML relatifs à des articles, un championnat de football et des films. Chaque exercice demande de rédiger des requêtes spécifiques pour extraire des informations variées à partir des fichiers fournis. Les solutions aux exercices sont également incluses, montrant comment utiliser XPath pour atteindre les résultats souhaités.

Transféré par

salinamilker
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
18 vues6 pages

TP XPath Solution

Le document présente des exercices pratiques sur le langage XPath pour des étudiants en informatique, comprenant des requêtes sur des fichiers XML relatifs à des articles, un championnat de football et des films. Chaque exercice demande de rédiger des requêtes spécifiques pour extraire des informations variées à partir des fichiers fournis. Les solutions aux exercices sont également incluses, montrant comment utiliser XPath pour atteindre les résultats souhaités.

Transféré par

salinamilker
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

3éme année licence informatique Université Mohamed Chérif

Données semi-structurées Messaadia


Travaux pratique Année universitaire 2021-2022

TP N°2 : Exercices pratiques sur le langage XPath

Exercice 1: Requêtes sur les articles


Ecrire des requêtes XPath sur l’éditeur XMLSpy permettant de constituer les
ensembles suivants à partir du fichier [Link] (en attachement) :

1. le nœud racine
2. tous les descendants de la racine
3. tous les attributs
4. tous les nœuds de type texte
5. les instructions de traitement présentes
6. les instructions de traitement présentes correspondant à une feuille de
style
7. les contenus de tous les paragraphes
8. les paragraphes contenant des aspects importants
9. la référence portant le code siteUnivMedCherifMessaadia
10. tous les deuxièmes auteurs (avec et sans la fonction position, puis sans
aucune fonction).

Exercice 2: Requêtes sur le championnat de football


Ecrire des requêtes XPath sur l’éditeur XMLSpy permettant de constituer les
ensembles suivants à partir du fichier [Link] (en attachement) :

1. les journées précédant la 8ème ;


2. les rencontres de la 4ème journée ;
3. la première rencontre de chacune des journées ;
4. l'adversaire de Bastia lors de la journée 10 ;
5. tous les adversaires de Bastia ;
6. la liste des matches non joués ;
7. les matches nuls de Bastia à domicile ;
8. le nombre et le pourcentage de matches nuls sur l'ensemble du
championnat ;
9. le nombre et le pourcentage de victoires à domicile ;
10. le nombre et le pourcentage de victoires à l'extérieur.
Exercice 3: Requêtes sur les filmes
Ecrire des requêtes XPath sur l’éditeur XMLSpy permettant de constituer les
ensembles suivants à partir du fichier [Link] (en attachement) :

1. le nombre de films disponibles ;


2. tous les commentaires dans le document ;
3. les acteurs du deuxième film ;
4. les titres des films dont la fiche est en anglais ;
5. le nom du personnage dont l'identifiant est lukemonfils ;
6. le titre des films sortis en 1981 ;
7. le nombre de références faites au personnage dont l'identifiant est indy ;
8. les films sans acteur ;
9. les films avec plusieurs réalisateurs ;
10. les titres des films dont le synopsis contient le mot believe.
3éme année licence informatique Université Mohamed Chérif
Données semi-structurées Messaadia
Travaux pratique Année universitaire 2021-2022

Solution TP N°2 : Exercices pratiques sur le langage XPath

Exercice 1: Requêtes sur les articles


Ecrire des requêtes XPath sur l’éditeur XMLSpy permettant de constituer les
ensembles suivants à partir du fichier [Link] (en attachement) :

1. le nœud racine
/
ou pour l'élément racine :
/child::*
/*

2. tous les descendants de la racine


/descendant::node()
//node()

ou à partir de l'élément racine :

/child::*/descendant::node()
/*//node()

3. tous les attributs


/descendant::*/attribute::*
//@*

4. tous les nœuds de type texte


/descendant::text()
//text()

5. les instructions de traitement présentes


/descendant::processing-instruction()
//processing-instruction()

6. les instructions de traitement présentes correspondant à une feuille de


style
/descendant::processing-instruction('xml-stylesheet')
//processing-instruction('xml-stylesheet')

7. les contenus de tous les paragraphes


/descendant::p/child::text()
//p/text()

8. les paragraphes contenant des aspects important


/descendant::p[child::important]
//p[important]

9. la référence portant le code siteUnivMedCherifMessaadia


/descendant::référence[attribute::code='siteUnivMedCherifMessaadia'
]
//référence[@code='siteUnivMedCherifMessaadia']

10. tous les deuxièmes auteurs (avec et sans la fonction position).


/descendant::*/child::auteur[position()=2]
//*/auteur[2]

/descendant::auteur[count(preceding::auteur)=1]
//auteur[count(preceding::auteur)=1]

Exercice 2: Requêtes sur le championnat de football


Ecrire des requêtes XPath sur l’éditeur XMLSpy permettant de constituer les
ensembles suivants à partir du fichier [Link] (en attachement) :

1. les journées précédant la 8ème ;


/descendant::JOURNEE[attribute::NUMERO < 8]
//JOURNEE[@NUMERO < 8]
//JOURNEE[@NUMERO=8]/preceding-sibling::JOURNEE

2. les rencontres de la 4ème journée ;


/descendant::JOURNEE[attribute::NUMERO=4]/child::RENCONTRE
//JOURNEE[@NUMERO=4]/RENCONTRE

3. la première rencontre de chacune des journées ;


/descendant::JOURNEE/child::RENCONTRE[position()=1]
//JOURNEE/RENCONTRE[1]

4. l'adversaire de Bastia lors de la journée 10 ;


/descendant::JOURNEE[attribute::NUMERO=10]/child::RENCONTRE[attri
bute::DOMICILE='Bastia']/attribute::EXTERIEUR
|
/descendant::JOURNEE[attribute::NUMERO=10]/child::RENCONTRE[attri
bute::EXTERIEUR='Bastia']/attribute::DOMICILE

//JOURNEE[@NUMERO=10]/RENCONTRE[@DOMICILE='Bastia']/@EXTERIEUR
| //JOURNEE[@NUMERO=10]/RENCONTRE[@EXTERIEUR='Bastia']/@DOMICILE

5. tous les adversaires de Bastia ;


/descendant::RENCONTRE[attribute::DOMICILE='Bastia']/attribute::E
XTERIEUR
|
/descendant::RENCONTRE[attribute::EXTERIEUR='Bastia']/attribute::
DOMICILE

//RENCONTRE[@DOMICILE='Bastia']/@EXTERIEUR |
//RENCONTRE[@EXTERIEUR='Bastia']/@DOMICILE

6. la liste des matches non joués ;


/descendant::RENCONTRE[attribute::SCORED='-']
//RENCONTRE[@SCORED='-']

7. les matches nuls de Bastia à domicile ;


/descendant::RENCONTRE[attribute::DOMICILE='Bastia' and
attribute::SCORED!='-'
and attribute::SCORED=attribute::SCOREE]
//RENCONTRE[@DOMICILE='Bastia' and @SCORED!='-' and
@SCORED=@SCOREE]

8. le nombre et le pourcentage de matches nuls sur l'ensemble du


championnat ;

100*count(//RENCONTRE[@SCORED!='-' and @SCORED=@SCOREE]) div


count(//RENCONTRE[@SCORED!='-'])

9. le nombre et le pourcentage de victoires à domicile ;


count(//RENCONTRE[@SCORED>@SCOREE])
100*count(//RENCONTRE[@SCORED>@SCOREE])div
count(//RENCONTRE[@SCORED!='-'])

10. le nombre et le pourcentage de victoires à l'extérieur.


count(//RENCONTRE[@SCORED<@SCOREE])

100*count(//RENCONTRE[@SCORED<@SCOREE])div
count(//RENCONTRE[@SCORED!='-'])

Exercice 3: Requêtes sur les filmes


Ecrire des requêtes XPath sur l’éditeur XMLSpy permettant de constituer les
ensembles suivants à partir du fichier [Link] (en attachement) :

1. le nombre de films disponibles ;


count(/descendant::film)
count(//film)

2. tous les commentaires dans le document ;


/descendant::comment()
//comment()

3. les acteurs du deuxième film ;


/child::films/child::film[position()=2]/child::casting/child::act
eur
//film[2]//acteur

4. les titres des films dont la fiche est en anglais ;


/descendant::film[attribute::lang="en"]/child::titre/child::text(
)
//film[@lang="en"]/titre/text()

5. le nom du personnage dont l'identifiant est lukemonfils ;


/descendant::acteur[attribute::id="lukemonfils"]/attribute::perso
nnage
//acteur[@id="lukemonfils"]/@personnage

6. le titre des films sortis en 1981 ;


/descendant::film[child::annee="1981"]/child::titre/child::text()
//film[annee="1981"]/titre

7. le nombre de références faites au personnage dont l'identifiant est indy ;


count(/descendant::perso[attribute::ref="indy"])
count(//perso[@ref="indy"])
8. les films sans acteur ;
/descendant::film[count(child::casting/child::acteur)=0]
//film[count(.//acteur)=0]

9. les films avec plusieurs réalisateurs ;


/descendant::film[contains(child::realisateur,",")]
//film[contains(realisateur,",")]

10. les titres des films dont le synopsis contient le mot believe.
/descendant::film[contains(child::synopsis,"believe")]
//film[contains(synopsis,"believe")]

Vous aimerez peut-être aussi