TUTORIELS 

Affichage d'un document XML dans une page Web
Par Loïc Boileau - Ingénieur Microsoft France

Trois techniques différentes d'affichage d'un document XML au sein d'une page Web : le Data Binding HTML, le DOM et enfin XSLT.  (6 mars 2002)
 

Page: 1 | 2 | 3 | 4 | 5

Utilisation de XSLT

XSL (Extensible Stylesheet Language) est un ensemble de spécifications destinées à afficher un document XML. En particulier, XSLT (XSL Transformations) s'attache à transformer un document XML en "quelque chose d'autre", par exemple une page HTML.

Une "feuille de style" XSLT contient un ou plusieurs "templates" (modèles) décrivant les opérations de transformations à effectuer pour des composants particuliers du document XML.

Une première méthode consiste a lier directement le document XML à la feuille de style XSL par l'intermédiaire de la "processing instruction" suivante :

<?xml-stylesheet type="text/xsl" href="Liste.xsl"?>

La transformation sera alors réalisée automatiquement par le navigateur. Il est à noter que cette fonctionnalité n'est disponible que depuis IE5. Cette version prenait en compte une ancienne version de XSL. La dernière implémentation, XSLT, n'est disponible qu'avec IE6, ou en utilisant MSXML 3 en mode "Replace".

Transformation explicite par code

La seconde méthode consiste à intégrer le code HTML issu de la transformation par la feuille de style XSL dans un document HTML.

Deux objets XML sont créés, l'un contient les données XML et l'autre le template XSL.

La méthode transformNode permet d'effectuer la transformation en appliquant le template XSL au document XML.

<SCRIPT LANGUAGE="JavaScript" FOR="window" EVENT="onload">

var DocXML = new ActiveXObject("Microsoft.xmldom");
DocXML.load("liste.xml");

var FileXSL = new ActiveXObject("Microsoft.xmldom");
FileXSL.load("XSLListe.xsl");

document.all.item("ConteneurDIV").innerHTML =
 DocXML.transformNode(FileXSL.documentElement);
</SCRIPT>

Exemple de la feuille de style XSL

L'attribut " match= / " du template identifie la racine du document XML. Dans ce modèle chaque livre est traité. L'élément <xsl:for-each ></xsl:for-each > permet d'identifier par un pattern donné, tous les livres de la liste et d'y appliquer une règle d'affichage.

L'élément <xsl:value-of/> permet de retourner la donnée XML pointé par l'attribut select.

<?xml version="1.0"?>

<!-- Nom du Fichier: XSLListe.xsl -->

<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
 <xsl:template match="/developpeur/">
 <H2>Liste des livres</H2>
 <TABLE BORDER="1" CELLPADDING="5">
 <THEAD>
 <TH>Titre</TH>
 <TH>Auteur</TH>
 <TH>Edition</TH>
 <TH>Pages</TH>
 <TH>Prix</TH>
 </THEAD>

 <xsl:for-each select="LISTE/LIVRE">
 <TR ALIGN="CENTER">
 <TD>
 <xsl:value-of select="TITRE"/>
 </TD><TD>
 <xsl:value-of select="AUTEUR"/>
 </TD><TD>
 <xsl:value-of select="EDITION"/>
 </TD><TD>
 <xsl:value-of select="PAGES"/>
 </TD><TD>
 <xsl:value-of select="PRIX"/>
 </TD>
 </TR>
 </xsl:for-each>

 </TABLE>
 </xsl:template>
</xsl:stylesheet>

Avantages

  • Séparation des données et de la mise en forme
  • La mise en forme est prise en charge par une technologie indépendante du DOM
  • Richesse du langage XSLT
  • Possibilité d'exécuter la transformation côté serveur, si le client ne permet pas l'utilisation de MSXML.
  • Langage standard (spécifications du W3C : www.w3.org/Style/XSL)

Inconvénients

  • Complexité du langage XSLT
  • Restriction pour la version d'Internet Explorer 5.0 ou plus.

Page: 1 | 2 | 3 | 4 | 5

 
[ Loïc Boileau, MSDN France pour JDNet
 
Accueil | Haut de page