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

Xpath Série 1

Le document décrit 4 films au format XML avec pour chaque film un titre, une année de sortie, un ou des réalisateurs et des acteurs. Les films décrits sont Rocky, Star Wars épisode 4, Raiders of the Lost Ark et Wallace et Gromit le mystère du lapin-garou.

Transféré par

ahmedfakhfekh66
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)
44 vues6 pages

Xpath Série 1

Le document décrit 4 films au format XML avec pour chaque film un titre, une année de sortie, un ou des réalisateurs et des acteurs. Les films décrits sont Rocky, Star Wars épisode 4, Raiders of the Lost Ark et Wallace et Gromit le mystère du lapin-garou.

Transféré par

ahmedfakhfekh66
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

Série XML et Xpath

Exercice 1 :

<?xml version="1.0" ?>


<films >
<!-- ROCKY -->
<film lang="en">
<photo href="[Link]" />
<titre>Rocky</titre>
<annee>1976</annee>
<realisateur>John G. Avildsen</realisateur>
<casting>
<acteur id="rocky" personnage="Rocky Balboa">Sylvester Stallone</acteur>
<acteur id="adrian" personnage="Adrian">Talia Shire</acteur>
<acteur id="paulie" personnage="Paulie">Burt Young</acteur>
<acteur id="creed" personnage="Apollo Creed">Carl Weathers</acteur>
<acteur id="mickey" personnage="Mickey">Burgess Meredith</acteur>
</casting>
<synopsis>
<perso ref="rocky" /> is a small-time boxer who lives in an apartment in Philadelphia,
Pennsylvania, and his career has so far not gotten off the
canvas. <perso ref="rocky" /> earns a living by collecting debts for a loan shark named
Gazzo, but Gazzo doesn't think <perso ref="rocky" /> has the viciousness it takes to
beat up deadbeats. <perso ref="rocky" /> still boxes every once in a while to keep his
boxing skills sharp, and his ex-trainer, <perso ref="mickey" />, believes he could've
made it to the top if he was willing to work for it. <perso ref="rocky" />, goes to a pet
store that sells pet supplies, and this is where he meets a young woman
named <perso ref="adrian" />, who is extremely shy, with no ability to talk to
men. <perso ref="rocky" /> befriends her. Adrain later
surprised <perso ref="rocky" /> with a dog from the pet shop
that <perso ref="rocky" /> had befriended. <perso ref="adrian" />'s brother Paulie,
who works for a meat packing company, is thrilled that someone has become
interested in <perso ref="adrian" />, and <perso ref="adrian" /> spends Thanksgiving
with <perso ref="rocky" />. Later, they go to <perso ref="rocky" />'s apartment,
where <perso ref="adrian" /> explains that she has never been in a man's apartment
before. <perso ref="rocky" /> sets her mind at ease, and they become lovers. Current
world heavyweight boxing champion <perso ref="creed" /> comes up with the idea of
giving an unknown a shot at the title. <perso ref="creed" /> checks out the Philadelphia
boxing scene, and chooses <perso ref="rocky" />. Fight promoter Jergens gets things
in gear, and <perso ref="rocky" /> starts training with <perso ref="mickey" />. After a
lot of training, <perso ref="rocky" /> is ready for the match, and he wants to prove that
he can go the distance with <perso ref="creed" />.
</synopsis>
</film>

<!-- Star Wars épisode 4 -->


<film lang="fr">
<titre>La Guerre des étoiles</titre>
<annee>1977</annee>
<realisateur>George Lucas</realisateur>
<casting>
<acteur id="lukemonfils" personnage="Luke Skywalker">Mark Hamill</acteur>
<acteur personnage="Han Solo">Harrison Ford</acteur>
<acteur id="leia" personnage="La princesse Leia">Carrie Fisher</acteur>
</casting>
<synopsis>
Il y a bien longtemps, dans une galaxie très lointaine... La guerre civile fait rage entre
l'Empire galactique et l'Alliance rebelle. Capturée par les troupes de choc de
l'Empereur menées par le sombre et impitoyable Dark Vador, la
princesse <perso ref="leia" /> dissimule les plans de l'Etoile Noire, une station spatiale
invulnérable, à son droïde R2-D2 avec pour mission de les remettre au Jedi Obi-Wan
Kenobi. <perso ref="lukemonfils" />. Rêvant de devenir pilote mais confiné aux travaux
de la ferme, ce dernier se lance à la recherche de ce mystérieux Obi-Wan Kenobi,
devenu ermite au coeur des montagnes désertiques de Tatooine...
</synopsis>
</film>

<!-- le premier Indiana Jones -->


<film lang="en">
<titre>Raiders of the Lost Ark</titre>
<annee>1981</annee>
<realisateur>Steven Spielberg</realisateur>
<casting>
<acteur id="indy" personnage="Indiana Jones">Harrison Ford</acteur>
</casting>
<synopsis>
Renowned archeologist and expert in the occult, <perso ref="indy" />, is hired by the
U.S. Government to find the Ark of the Covenant, which is believed to still hold the ten
commandments. <perso ref="indy" />, and his ex-flame Marion, escape from various
close scrapes in a quest that takes them from Nepal to Cairo.
</synopsis>
</film>
<!-- Le dernier Wallace et Gromit -->
<film lang="fr">
<titre>Wallace et Gromit le mystère du lapin-garou</titre>
<annee>2003</annee>
<realisateur>Nick Park, Steve Box</realisateur>
<casting />
<synopsis>
Une "fièvre végétarienne" intense règne dans la petite ville de Wallace et Gromit, et
l'ingénieux duo a mis à profit cet engouement en inventant un produit anti-nuisibles
humain et écolo, qui épargne la vie des lapins. L'astuce consiste simplement à
capturer, à la main, un maximum de ces rongeurs et à les mettre en cage.
</synopsis>
</film>
</films>

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.

le nombre de films disponibles ;


1. count(/descendant::film)
2. count(//film)

tous les commentaires dans le document ;


3. /descendant::comment()
4. //comment()

les acteurs du deuxième film ;


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

les titres des films dont la fiche est en anglais ;


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

le nom du personnage dont l'identifiant est lukemonfils ;


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

le titre des films sortis en 1981 ;


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

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


13. count(/descendant::perso[attribute::ref="indy"])
14. count(//perso[@ref="indy"])

les films sans acteur ;


15. /descendant::film[count(child::casting/child::acteur)=0]
16. //film[count(.//acteur)=0]

les films avec plusieurs réalisateurs ;


17. /descendant::film[count(child::realisateur)>1]
18. //film[count(realisateur)>1]

les titres des films dont le synopsis contient le mot believe.


19. /descendant::film[contains(child::synopsis,"believe")]/child::t
itre
20. //film[contains(synopsis,"believe")]/titre

Exercice 2 :

Soit le fichier XML suivant :

<todolist owner="Fabien Torre">


<!-- TODO LIST Courses semaine -->
<todo deadline="01/12/2006" illustration="[Link]">
<title>Courses de la semaine</title>
<items>
<item>du pain</item>
<item>du fromage</item>
<item>des yaourts</item>
<item>des légumes frais et bio</item>
</items>
<commentaires>
<par>
Voir aussi ce qu'il faut prévoir pour la <important>soirée du
samedi</important> <date>02/12/2006</date>.
</par>
<par>
Et puis penser à <important>prendre mon panier</important>, pour ne pas revenir
avec des <lien url="[Link] plastiques</lien> !
</par>
</commentaires>
</todo>
<todo deadline="24/12/2006" illustration="[Link]">
<title>Préparation du réveillon</title>
<items>
<item>
trouver le menu, on peut regarder
sur <lien url="[Link]
</item>
<item level="critic">
commander le fromage avant le <date>16/12/2006</date>
</item>
<item>acheter et décorer le sapin</item>
<item>demander à Marc son déguisement de père Noël</item>
</items>
<commentaires>
<par>
Le problème de fond est de savoir <important>combien on va être</important>, il
faudrait le savoir avant le <date>9/12/2006</date> et aussi déterminer s'il y aura un
autre repas le lundi midi... ?.
</par>
</commentaires>
</todo>
….

Proposer des requêtes XPath permettant d’afficher:

1. tous les attributs ;


2. tous les commentaires XML du document ;
3. tous les noeuds de type texte ;
4. la valeur du deuxième deadline apparaissant dans le document ;
5. le premier item du document ;
6. les item premier dans leur liste ;
7. les titres dont les listes contiennent des items critiques ;
8. les titres des todo qui n'ont pas de commentaires associés ;
9. toutes les urls du document ;
10. le nombre de paragraphes dans les commentaires du deuxième todo ;
11. le titre dont l'image associée est [Link].

tous les attributs ;


1. /descendant::*/attribute::*
2. //@*

tous les commentaires XML du document ;


3. /descendant-or-self::comment()
4. //comment()

tous les noeuds de type texte ;


5. /descendant-or-self::text()
6. //text()
la valeur du deuxième deadline apparaissant dans le document ;
7. /descendant::*[attribute::deadline][position()=2]/attribute::dead
line
8. //*[@deadline][2]/@deadline

le premier item du document ;


9. /descendant::item[position()=1]
10. -

11. /descendant::items/child::item[position()=1]
12. //item[1]

les titres dont les listes contiennent des items critiques ;


13. /descendant::item[attribute::level='critic']/parent::items/pare
nt::todo/child::title/text()
14. //todo[.//@level='critic']/title/text()

les titres des todo qui n'ont pas de commentaires associés ;


15. /descendant::todo[not(child::commentaires)]/child::title/child:
:text()
16. //todo[not(.//commentaires)]/title/text()

toutes les urls du document ;


17. /descendant::*/attribute::url
18. .//@url

le nombre de paragraphes dans les commentaires du deuxième todo ;


19. count(/descendant::todo[position()=2]/child::commentaires/child
::par)
20. count(//todo[2]/commentaires/par)

le titre dont l'image associée est [Link].


21. /descendant::todo[attribute::illustration='[Link]']/child::t
itle/child::text()
22. //todo[@illustration='[Link]']/title/text()

Vous aimerez peut-être aussi