Précédent Remonter Suivant

0.6.6  XSLT

Maintenant nous allons écrire quelques programmes XSLT pour transformer le document FilmsArtistes.xml en HTML.

Pour faire le transformations nous allons nous servir du logiciel xsltproc qui prend comme argument un programme XSLT et un ou plusieurs documents XML :
xsltproc programme.xslt doc1.xml doc2.xml ...
Par défaut le résultat de la transformation est écrit dans la sortie standard. Il peut être redirigé avec l'option -o document.html. Par exemple la commande suivante traduit le document FilmsArtistes.xml en un document HTML contenant la liste des films (titre, année, genre et pays) avec le programme ListeFilms.xsl :
xsltproc -o ListeFilms.html ListeFilms.xsl FilmsArtistes.xml     
Le résultat peut ensuite être affiché avec un navigateur standard.

Remarque: Vous pouvez également effectuer les transformations XSLT avec le navigateur mozilla (installé sur kirov). Dans ce cas, il faut ajouter une ligne comme la suivante au début du document XML à transformer:
<?xml-stylesheet href="progr.xsl" type="text/xml"?>
Vous pouvez maintenant ecrire vos propres programmes (en partant du programme ListeFilms.xsl) :
  1. La liste des artistes (nom, prénom et date de naissance). ATTENTION, envoyez le resultat à dgram.at.cnam.fr, avec pour sujet tpvalc 2 <votre nom>.
  2. La liste des films (titre) avec les roles et les noms des acteurs. ATTENTION, envoyez le resultat à dgram.at.cnam.fr, avec pour sujet tpvalc 2 <votre nom>.
  3. (un peu plus compliqué): la liste des films (titre) avec le nom de leur metteur en scène (utiliser la fonction current() ou l'instruction xsl:variable - Référence XPath/XSLT).
On peut également générer des documents XML (pour les programmeurs avertis...) :
  1. Le même document où le nom et prénom de l'acteur dans le rôle d'un film est remplacé par son identifiant : par exemple
        <ROLES>
          <ROLE>
            <PRENOM>James</PRENOM>
            <NOM>Stewart</NOM>
            <INTITULE>John Ferguson</INTITULE>
          </ROLE>
          <ROLE>
            <PRENOM>Kim</PRENOM>
            <NOM>Novak</NOM>
            <INTITULE>Madeleine Elster</INTITULE>
          </ROLE>
        </ROLES>
    
    devient
        <ROLES>
          <ROLE>
             <ACTEUR>15</ACTEUR>
             <INTITULE>John Ferguson</INTITULE>
          </ROLE>
          <ROLE>
             <ACTEUR>16</ACTEUR>
             <INTITULE>Madeleine Elster</INTITULE>
          </ROLE> 
        </ROLES>
    
    Vous pouvez utiliser l'instruction xsl:copy et la fonction current().

  2. On veut générer un fichier par film :

Précédent Remonter Suivant