Introduction aux technologies XML : fiche 3 d'exercices

Exercice 1

Dessinez l'arbre XML (au sens du transparent 10 de la fiche 2) de ce document. En supposant que l'élément courant est foo, quels sont les noeuds appartenant à chacun des 12 axes XPath vus en cours ?

Exercice 2

Dessinez l'arbre XML (au sens du transparent 10 de la fiche 2) de ce document.

Donnez les expressions XPath étendues et abrégées désignant :

  1. les éléments author fils de library
  2. les éléments author de tout le document
  3. l'attribut location de l'élément library
  4. les attributs title des éléments book
  5. les éléments book avec un attribut cover
  6. les éléments book dont le titre est Artificial Intelligence
  7. le premier élément author
  8. le dernier élément book du premier auteur
  9. les éléments book sans attribut cover

Exercice 3

Donnez les équivalents en notation étendue de :

  1. //@foo
  2. .//@foo
  3. /foo/bar/../baz[2]

Cette dernière expression est-elle équivalente à /foo/baz[2] ? Justifiez votre réponse.

Exercice 4

Les expressions XPath //foo[1] et /descendant-or-self::foo[position()=1] ne sont pas équivalentes car la notation étendue associée à //foo[1] est /descendant-or-self::node()/child::foo[position()=1]. Proposez un document XML où l'évaluation de ces expressions XPath diffère.

Exercice 5

Concernant ce recueil de recettes de cuisine, donnez les formes étendues et abrégées des expressions XPath :

  1. des noeuds ingredient apparaissant dans le recueil de recettes
  2. des noeuds ingredient composites apparaissant dans le recueil
  3. du nombre total de noeuds ingredient apparaissant dans le recueil (utilisez la fonction count())
  4. du premier noeud ingredient du document XML
  5. de la chaine de caractère valeur de l'attribut name du premier noeud ingredient du document XML (utilisez la fonction string())
  6. des noeuds title (noms) des recettes
  7. du texte des noeuds title des recettes
  8. des noms de recettes avec au moins un commentaire (comment)
  9. du noeud title de la recette d'id r105
  10. des recettes dont le sucre est un ingrédient
  11. des recettes de moins de 700 calories
  12. des ingrédient dont la valeur de l'attribut name contient la chaine "egg" (utilisez la fonction contains())

Travail de fond

Etudiez les ressources en ligne associées au chapitre 3.

Valid XHTML 1.0 Strict