:: Enseignements :: ESIPE :: E5INFO :: 2008-2009 :: XML-XSLT ::
![[LOGO]](http://igm.univ-mlv.fr/ens/resources/mlv.png) | Restructuration - 2 |
Le but de ce TD est d'écrire des scripts XSLT qui font des restructurations
complètes de fichiers XML.
Exercice 1 - Index alphabétique
Faire un programme XSLT qui produit à partir d'un fichier de filmographie (e.g.
bergman.xml) un document XHTML qui recense, dans l'ordre alphabétique, les noms de personnes citées comme réalisateur de film, mari de l'actrice ou auteur d'une citation.
Chaque personne citée devra apparaître une seule fois dans la liste de personnes.
Pour chaque nom, lister les films (dans le cas d'un réalisateur), le mariage avec les dates (dans le cas d'un mari), les citations (dans le cas d'un auteur de citations).
Utiliser des indexeurs (xsl:key).
Dans un deuxième temps, on remplacera au moins un apply-templates par un for-each.
Exercice 2 - Liens XHTML
Faire un script XSLT qui produit à partir d'un fichier de CV européen
(e.g.
betty.xml) un
document XHTML qui recense tous les textes qui apparaissent traduits dans le CV XML
(ils sont signalés par l'attribut
lang dans le fichier de CV).
Présenter tous les textes dans une langue, par ordre alphabétique, puis les textes
dans l'autre langue, également par ordre alphabétique. Faire un lien de chaque texte
vers sa traduction si elle existe.
Passer au script un paramètre qui indique quelle langue apparaît en premier.
Exercice 3 - Structuration d'un document
Faire un script XSLT qui produit à partir du fichier d'horaires de métro
ligne7.xml un
document XML structuré sous la forme suivante :
- un élément racine stations ;
- un niveau au-dessous, des éléments station, un pour chaque station de métro
de la ligne, dans l'ordre, avec le nom de la station comme texte
inclus dans l'élément ;
- chaque élément station possède deux attributs, premier et
dernier, qui donnent les horaires du premier et du dernier passage de la
journée (en semaine). On passe d'une journée à la suivante à 4 heures du matin.
Indication : définir un indexeur (xsl:key). Chaque fois qu'on identifie
dans le document source des noeuds p et f tels que, dans le document résultat,
l'équivalent de p devra être le père de l'équivalent de f, le noeud f doit être
indexé par l'identifiant de p.
© Université de Marne-la-Vallée