site de Fabien Torre


Requêtes XPath en pratique

Exercices sur le langage XPath.

On travaille avec xmllint en mode shell :

xmllint --shell mondoc.xml

On dispose alors de la commande xpath permettant d'évaluer des requêtes XPath mais aussi plusieurs autres inspirées du shell de Unix :

  • cd et pwd : se déplacer et savoir où l'on est ;
  • ls, dir, cat et du : connaître le contenu du noeud courant ;
  • grep : recherche un texte dans un sous-arbre ;
  • set : remplacer un sous-arbre ;
  • load, save et write : gérer le fichier XML ;
  • bye, exit et quit : sortir de xmllint.

Requêtes sur les articles

Proposer des requêtes XPath permettant de constituer les ensembles suivants à partir du fichier article.xml [ voir ][ récupérer ]

  1. le noeud racine ;
  2. tous les descendants de la racine ;
  3. tous les attributs ;
  4. tous les noeuds 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 siteMarc ;
  10. tous les deuxièmes auteurs (avec et sans la fonction position, puis sans aucune fonction).

En utilisant les fonctions shell de xmllint :

  • se placer dans le corps de l'article ;
  • extraire toutes les références qui y figurent ;
  • retrouver le détail d'une référence.

Dans l'idée d'exprimer des contraintes de clefs, primaire et étrangère, en XML Schéma :

  • se placer à l'endroit adéquat ;
  • extraire toutes les valeurs de clefs primaires ;
  • extraire toutes les valeurs de clefs étrangères.

Requêtes sur les acteurs

Proposer des requêtes XPath permettant de constituer les ensembles suivants à partir du fichier acteurs.xml [ voir ][ récupérer ] :

  1. les éléments acteur ;
  2. le nombre d'acteur décrit dans le document XML ;
  3. tous les commentaires ;
  4. le deuxième des commentaires ;
  5. le premier noeud fils du premier noeud acteur ;
  6. le premier noeud fils du deuxième noeud acteur ;
  7. les deux premiers éléments fils de chaque acteur ;
  8. le dernier élément fils de chaque acteur ;
  9. l'acteur dont l'identifiant est clint ;
  10. l'acteur dont le prénom est Clint ;
  11. les noms des acteurs dont la biographie contient exactement deux paragraphes ;
  12. le titre du deuxième film cité dans le document ;
  13. le deuxième film cité dans le premier paragraphe contenant plus d'un film.

En utilisant les fonctions shell de xmllint :

  • se placer dans la biographie de Hilary Swank ;
  • extraire toutes les références à d'autres acteurs qui y figurent ;
  • pour l'un de ces acteurs, retrouver son nom et som prénom.

Dans l'idée d'exprimer des contraintes de clefs, primaire et étrangère, en XML Schéma :

  • se placer à l'endroit adéquat ;
  • extraire toutes les valeurs de clefs primaires ;
  • extraire toutes les valeurs de clefs étrangères.

Requêtes sur le championnat de football

Proposer des requêtes XPath permettant de constituer les ensembles suivants à partir du fichier foot.xml [ voir ][ récupérer ] :

  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.

En utilisant les fonctions shell de xmllint :

  • rejoindre la journée 10 ;
  • afficher l'adversaire de Bastia lors de cette journée ;
  • afficher l'adversaire de Bastia pour la journée suivante.

Dans l'idée d'exprimer une contrainte d'unicité en XML Schéma :

  • se placer à l'endroit adéquat ;
  • extraire toutes les valeurs devant être uniques.

Requêtes sur les brèves

Proposer des requêtes XPath permettant de constituer les ensembles suivants à partir du fichier actu.xml [ voir ][ récupérer ] :

  1. tous les noeuds ;
  2. tous les éléments ;
  3. les adresses web contenues dans le document ;
  4. le nombre de brèves ;
  5. tous les titres de brèves ;
  6. les brèves sur le sport ;
  7. les brèves qui contiennent une photo ;
  8. les brèves dont le titre commence par la lettre D ;
  9. les brèves dont le texte contient le mot marathon ;
  10. tous les éléments qui suivent une brève de type actu.

En utilisant les fonctions shell de xmllint :

  • rejoindre la première brève de type actu ;
  • afficher son titre ;
  • afficher la brève suivante du même type.

Requêtes sur les films

Proposer des requêtes XPath permettant de constituer les ensembles suivants à partir du fichier films.xml [ voir ][ récupérer ] :

  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.

En utilisant les fonctions shell de xmllint :

  • se placer sur le synopsis de Rocky ;
  • en extraire toutes les références aux personnages ;
  • pour un personnage, afficher son nom, puis l'acteur qui l'incarne.

Dans l'idée d'exprimer des contraintes de clefs, primaire et étrangère, en XML Schéma :

  • se placer à l'endroit adéquat ;
  • extraire toutes les valeurs des clefs primaires ;
  • extraire toutes les valeurs des clefs étrangères.

Requêtes sur les TODO list

Nous disposons d'une DTD (voir, récupérer) et d'un document XML (voir, récupérer) visant à décrire une liste de choses à faire (TODO list). Cette liste est organisée en thème, chaque thème disposant d'une illustration, d'une date limite, d'un titre, de commentaires et naturellement, d'une liste d'actions à effectuer.

Proposer des requêtes XPath permettant de constituer les ensembles suivants à partir du fichier todolist.xml (pour chaque question, proposer au moins deux requêtes distinctes) :

  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 sapin.jpg.

Requêtes sur les bandes dessinées

Proposer des requêtes XPath permettant de constituer les ensembles suivants à partir du fichier bd.xml [ voir ][ récupérer ] :

  1. le nombre de bandes dessinées dans la collection ;
  2. les bandes dessinées qui ne font par partie d'une série ;
  3. les titres des séries ;
  4. le nombre d'albums dans la série Lanfeust de Troy ;
  5. toutes les illustrations du document ;
  6. les bandes dessinées de Manu Larcenet ;
  7. l'identifiant d'une personne dont le prénom est Riad ;
  8. les personnes définies avant Manu Larcenet ;
  9. les dates de sortie des bandes-dessinées dont le titre commence par la lettre L ;
  10. les bandes dessinées dont le résumé contient le mot oiseau ;
  11. la deuxième bande dessinée définie dans le document.

En utilisant les fonctions shell de xmllint :

  • se placer au niveau du résumé de la bande dessinée intitulée la vraie vie ;
  • en extraire les noms de personnages ;
  • récupérer la référence de l'illustrateur ;
  • récupérer son nom et son prénom.

Dans l'idée d'exprimer des contraintes de clefs, primaire et étrangère, en XML Schéma :

  • se placer à l'endroit adéquat ;
  • extraire toutes les valeurs des clefs primaires ;
  • extraire toutes les valeurs des clefs étrangères.

Fabien Torre Valid HTML5! Valid CSS!
Accueil > Enseignement > En pratique > Documents numériques > XML > XPath
(contenu mis à jour )
site de Fabien Torre, université de Lille

Description

Survoler un lien de navigation pour lire sa description ici...