Expressions XPath et premiers pas en XSLT

Des expressions XPath

Nous allons à nouveau utiliser xmllint. Utilisez l'option --shell (et le manuel d'aide man xmllint). Vous entrez dans un interprète Xpath qui vous permettra de vous déplacer dans votre document. La commande xpath exprXpath vous permet d'évaluer une expression XPath, et cd exprXPath de vous déplacer dans le document XML. Utilisez la commande help pour connaître toutes les commandes disponibles.
Sur le document Spaghetti à la Bolognaise, utilisez l'interprète XPath de xmllint pour obtenir les éléments suivants :
  1. ensemble des éléments ingredient
  2. les commentaires de la partie preparation
  3. les deux derniers commentaires du document
  4. quel est le nombre de noeuds suivant la première phase de préparation ?
  5. quels sont les noeuds suivants la fiche technique ? les noeuds précédents ?
  6. combien y-a-t-il de phases de préparation dont le texte contient moins de 180 caractères ?

On se sert maintenant du document Grand Prix.

Ecrire les expressions XPath qui retournent (le noeud contextuel est la racine) :

  1. tous les noeuds éléments de nom attr
  2. tous les noeuds éléments qui ont un attribut order
  3. le fils de nom attr de cast
  4. le premier fils de nom name d'un Composer
  5. le noeud attribut de nom Crew (attribut de filmography)
  6. le quatrième fils de filmography
  7. les quatre premiers fils de filmography
  8. les noeuds attributs de nom order
  9. le noeud contextuel étant maintenant remainder, retournez le sous-arbre de racine Editor
  10. le nombre d'acteurs de premier plan (cité dans cast)
  11. le nombre total de comédiens (cast, remainder, miscellaneous)
  12. une chaîne de caractères présentant le film : titre (année) - réalisateur
  13. l'ensemble des intervenants dont le prénom est Bob

Vous trouverez en annexe un document de recettes de cuisine danoise.

Donnez les expressions XPath qui retournent (à partir du noeud racine, sauf indication contraire) :

  1. les noeuds éléments dont le nom est preparation;
  2. les ingrédients de la tarte à la ricotta (ricotta pie) dont l'unité de mesure est la petite cuiller (teaspoon);
  3. le nombre d'étapes de préparation de la recette de la tarte à la ricotta ;
  4. le nom du quatrième ingrédient de la garniture (filling) de la tarte à la ricotta.
  5. à partir du noeud ingredient de la ricotta (name="ricotta cheese"), les autres ingrédients de le recette de la tarte à la ricotta dont la quantité est supérieure ou égale à 2;
  6. tous les titres des recettes dont le nombre de calories est inférieure à 1200;
  7. le nom du quatrième ingrédient de la pâte (dough) de la tarte à la ricotta;
  8. toutes les étapes (step) qui contiennent le mot bake.
  9. le nombre de calories moyen d'une recette.
  10. le nombre moyen d'oeufs par recette (attention, il s'agit de retrouver les ingrédients qui contiennent le mot eggs).

Un peu de transformation...

Créez une première feuille de transformation qui transforme la recette de spaghetti en un document html (XHTML) qui contient simplement le texte Ceci est une recette de cuisine. Associez votre document xml à cette feuille de transformation et visualisez-la avec Firefox.
Créez une vraie feuille de transformation pour obtenir un document Xhtml à partir de la recette (aujourd'hui, vous oublierez les informations dans les attributs).