XSLT sur le serveur

Comme tous les navigateurs ne supportent pas XSLT, une autre solution consiste à effectuer la conversion XML en XHTML sur le serveur.

Solution multi-navigateurs

Dans les chapitres précédents, nous avons expliqué comment utiliser XSLT dans un navigateur pour effectuer la conversion XML en XHTML. Nous avons créé un segment de JavaScript utilisant un analyseur XML pour la conversion. La solution JavaScript ne fonctionne pas sur les navigateurs sans analyseur XML. Pour que les données XML soient applicables à tous les types de navigateurs, nous devons convertir le document XML sur le serveur et l'envoyer au navigateur sous forme de XHMTL.

C'est l'un des avantages de XSLT. Un des objectifs de conception de XSLT est de rendre possible la conversion des données d'un format à un autre sur le serveur et de renvoyer des données lisibles à tous les types de navigateurs.

Fichiers XML et fichiers XSL

Veuillez consulter ce document XML déjà présenté dans les chapitres précédents :

<?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>
.
.
.
</catalog>

Consulter ce fichier XML.

ainsi que les feuilles de style XSL associées :

<?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 align="left">Titre</th> 
        <th align="left">Artiste</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>

Voir ce fichier XSL.

Veuillez noter que ce fichier XML ne contient pas de référence au fichier XSL.

Points importants :Cette phrase indique que le fichier XML peut être converti en utilisant plusieurs styles de table XSL différents.

Convertir XML en XHTML sur le serveur

Voici le code source pour convertir un fichier XML en XHTML sur le serveur :

<%
'Charger XML
set xml = Server.CreateObject("Microsoft.XMLDOM")
xml.async = false
xml.load(Server.MapPath("cdcatalog.xml"))
'Charger XSL
set xsl = Server.CreateObject("Microsoft.XMLDOM")
xsl.async = false
xsl.load(Server.MapPath("cdcatalog.xsl"))
'Transformer le fichier
Response.Write(xml.transformNode(xsl))
%>

Astuce :Si vous ne savez pas comment écrire en ASP, vous pouvez apprendre notreASP Tutorial

Le premier morceau de code crée une instance du parseur XML de Microsoft, puis charge le fichier XML en mémoire. Le deuxième morceau de code crée une autre instance du parseur, puis charge ce fichier XSL en mémoire. La dernière ligne de code utilise le document XSL pour transformer le document XML, et envoie le résultat sous forme de XHTML à votre navigateur. La tâche est terminée !

Voyons comment cela fonctionne.