XSLT - Transformation du fichier XML

XSLT - Transformation du fichier XML


XML cours tutorial

Comment transformer le XML en XHTML à l'aide de XSLT.

La déclaration de feuille de Style

L'élément racine qui déclare que le document est une feuille de style XSL est :
<xsl:stylesheet> ou <xsl:transform>.
Note :
<xsl:stylesheet> et <xsl:transform> sont complètement synonymes et on  peut  utiliser l’une ou l’autre !
La manière correcte de déclarer une feuille de style XSL conformément à la recommandation XSLT de W3C est :

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

Ou

<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

Pour obtenir l'accès aux éléments XSLT, attributs et fonctionnalités il faut déclarer l'espace de noms XSLT en haut du document.
L’attribut  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" pointe vers l'espace de noms du W3C XSLT officiel.
Si vous utilisez cet espace de noms, vous devez également inclure l'attribut de  la version  
version  = "1.0".

Commencer avec un Document XML

Nous voulons  transformer le document XML suivant ("cdcatalog.xml") en XHTML :

Sélectionner le code

	  <?xml version="1.0" encoding="ISO-8859-1"?>
	  <catalog>
	  <cd>
	    <title>Empire Burlesque</title>
	    <artist>Bob Dylan</artist>
	    <country>USA</country>
	    <company>Columbia</company>
	    <price>10.90</price>
	    <year>1985</year>
	  </cd>
	  <cd>
	    <title>Hide your heart</title>
	    <artist>Bonnie Tyler</artist>
	    <country>UK</country>
	    <company>CBS Records</company>
	    <price>9.90</price>
	    <year>1988</year>
	  </cd>
	  <cd>
	    <title>Greatest Hits</title>
	    <artist>Dolly Parton</artist>
	    <country>USA</country>
	    <company>RCA</company>
	    <price>9.90</price>
	    <year>1982</year>
	  </cd>
	  <cd>
	    <title>Still got the blues</title>
	    <artist>Gary Moore</artist>
	    <country>UK</country>
	    <company>Virgin records</company>
	    <price>10.20</price>
	    <year>1990</year>
	  </cd>
	  <cd>
	    <title>Eros</title>
	    <artist>Eros Ramazzotti</artist>
	    <country>EU</country>
	    <company>BMG</company>
	    <price>9.90</price>
	    <year>1997</year>
	  </cd>
	  <cd>
	    <title>One night only</title>
	    <artist>Bee Gees</artist>
	    <country>UK</country>
	    <company>Polydor</company>
	    <price>10.90</price>
	    <year>1998</year>
	  </cd>
	  <cd>
	    <title>Sylvias Mother</title>
	    <artist>Dr.Hook</artist>
	    <country>UK</country>
	    <company>CBS</company>
	    <price>8.10</price>
	    <year>1973</year>
	  </cd>
	  <cd>
	    <title>Maggie May</title>
	    <artist>Rod Stewart</artist>
	    <country>UK</country>
	    <company>Pickwick</company>
	    <price>8.50</price>
	    <year>1990</year>
	  </cd>
	  <cd>
	    <title>Romanza</title>
	    <artist>Andrea Bocelli</artist>
	    <country>EU</country>
	    <company>Polydor</company>
	    <price>10.80</price>
	    <year>1996</year>
	  </cd>
	  <cd>
	    <title>When a man loves a woman</title>
	    <artist>Percy Sledge</artist>
	    <country>USA</country>
	    <company>Atlantic</company>
	    <price>8.70</price>
	    <year>1987</year>
	  </cd>
	  <cd>
	    <title>Black angel</title>
	    <artist>Savage Rose</artist>
	    <country>EU</country>
	    <company>Mega</company>
	    <price>10.90</price>
	    <year>1995</year>
	  </cd>
	  <cd>
	    <title>1999 Grammy Nominees</title>
	    <artist>Many</artist>
	    <country>USA</country>
	    <company>Grammy</company>
	    <price>10.20</price>
	    <year>1999</year>
	  </cd>
	  <cd>
	    <title>For the good times</title>
	    <artist>Kenny Rogers</artist>
	    <country>UK</country>
	    <company>Mucik Master</company>
	    <price>8.70</price>
	    <year>1995</year>
	  </cd>
	  <cd>
	    <title>Big Willie style</title>
	    <artist>Will Smith</artist>
	    <country>USA</country>
	    <company>Columbia</company>
	    <price>9.90</price>
	    <year>1997</year>
	  </cd>
	  <cd>
	    <title>Tupelo Honey</title>
	    <artist>Van Morrison</artist>
	    <country>UK</country>
	    <company>Polydor</company>
	    <price>8.20</price>
	    <year>1971</year>
	  </cd>
	  <cd>
	    <title>Soulsville</title>
	    <artist>Jorn Hoel</artist>
	    <country>Norway</country>
	    <company>WEA</company>
	    <price>7.90</price>
	    <year>1996</year>
	  </cd>
	  <cd>
	    <title>The very best of</title>
	    <artist>Cat Stevens</artist>
	    <country>UK</country>
	    <company>Island</company>
	    <price>8.90</price>
	    <year>1990</year>
	  </cd>
	  <cd>
	    <title>Stop</title>
	    <artist>Sam Brown</artist>
	    <country>UK</country>
	    <company>A and M</company>
	    <price>8.90</price>
	    <year>1988</year>
	  </cd>
	  <cd>
	    <title>Bridge of Spies</title>
	    <artist>T`Pau</artist>
	    <country>UK</country>
	    <company>Siren</company>
	    <price>7.90</price>
	    <year>1987</year>
	  </cd>
	  <cd>
	    <title>Private Dancer</title>
	    <artist>Tina Turner</artist>
	    <country>UK</country>
	    <company>Capitol</company>
	    <price>8.90</price>
	    <year>1983</year>
	  </cd>
	  <cd>
	    <title>Midt om natten</title>
	    <artist>Kim Larsen</artist>
	    <country>EU</country>
	    <company>Medley</company>
	    <price>7.80</price>
	    <year>1983</year>
	  </cd>
	  <cd>
	    <title>Pavarotti Gala Concert</title>
	    <artist>Luciano Pavarotti</artist>
	    <country>UK</country>
	    <company>DECCA</company>
	    <price>9.90</price>
	    <year>1991</year>
	  </cd>
	  <cd>
	    <title>The dock of the bay</title>
	    <artist>Otis Redding</artist>
	    <country>USA</country>
	    <company>Atlantic</company>
	    <price>7.90</price>
	    <year>1987</year>
	  </cd>
	  <cd>
	    <title>Picture book</title>
	    <artist>Simply Red</artist>
	    <country>EU</country>
	    <company>Elektra</company>
	    <price>7.20</price>
	    <year>1985</year>
	  </cd>
	  <cd>
	    <title>Red</title>
	    <artist>The Communards</artist>
	    <country>UK</country>
	    <company>London</company>
	    <price>7.80</price>
	    <year>1987</year>
	  </cd>
	  <cd>
	    <title>Unchain my heart</title>
	    <artist>Joe Cocker</artist>
	    <country>USA</country>
	    <company>EMI</company>
	    <price>8.20</price>
	    <year>1987</year>
	  </cd>
	  </catalog>
	
 

Affichage du fichiers XML dans Firefox et Internet Explorer : Ouvrez le fichier XML - document XML Il sera affiché avec le code des éléments racine et l'enfant en couleurs.
Avec un signe plus (+) ou signe moins (-) à gauche des éléments qui peuvent être cliqué pour développer ou réduire la structure de l'élément.
Pour afficher la source XML brute (sans less signes + et -), sélectionnez « Afficher le code  source de la page » ou « Afficher la Source » dans le menu du navigateur.
Affichage des fichiers XML dans Netscape 6: Ouvrez le fichier XML, puis faites un clic droit et sélectionnez « Afficher la Page Source ». Le document XML sera alors affiché avec couleur de l’élément racine et des éléments enfants.
Affichage des fichiers XML dans Opera 7: Ouvrez le fichier XML, puis faites un clic droit dans  et sélectionnez « Frame » / « Afficher la Source ». Le document XML sera affiché en texte brut.

Créer une feuille de Style XSL

Créez une feuille de Style XSL ("cdcatalog.xsl") avec un modèle de
 transformation comme suit :

Sélectionner le code

  <?xml version="1.0" encoding="ISO-8859-1"?>
  
  <xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  
  <xsl:template match="/">
    <html>
    <body>
    <h2>Ma collection de cd</h2>
    <table border="1">
      <tr bgcolor="#9acd32">
        <th>Title</th>
        <th>Artist</th>
      </tr>
      <xsl:for-each select="catalog/cd">
      <tr>
        <td><xsl:value-of
  select="title"/></td>
        <td><xsl:value-of
  select="artist"/></td>
      </tr>
      </xsl:for-each>
    </table>
    </body>
    </html>
  </xsl:template>
  
  </xsl:stylesheet>

 

Un lien vers La feuille de Style XSL dans le Document XML

Ajoutez la référence de feuille de style XSL à votre document XML ("cdcatalog.xml")
Comme suit:

Sélectionner le code

  <?xml version="1.0" encoding="ISO-8859-1"?>
  <?xml-stylesheet type="text/xsl"
  href="cdcatalog.xsl"?>
  <catalog>
    <cd>
      <title>Empire Burlesque</title>
      <artist>Bob Dylan</artist>
      <country>USA</country>
      <company>Columbia</company>
      <price>10.90</price>
      <year>1985</year>
    </cd>
  .
  .
  </catalog>

 

Si vous avez un navigateur conforme XSLT  votre XML sera parfaitement transformer en XHTML.
Les détails de l'exemple ci-dessus seront expliqués dans les prochains chapitres.



Cours precedent:
cours precedent  XSLT introduction
    Sommaire de :
Le langage XML
 Cours suivant:
Elément XSLT XSL template   cours suivant
Par carabde 10 mai 2014