XSLT - Serveur

Puisque tous les navigateurs ne supportent pas XSLT, une autre solution consiste à réaliser la conversion XML en XHTML sur le serveur.

Solution compatible avec tous les navigateurs

Dans les chapitres précédents, nous avons expliqué comment utiliser XSLT dans les navigateurs pour réaliser 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

Voyez 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>

Voir 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 aux fichiers XSL.

Matière à savoir :Cette phrase indique que le fichier XML peut être converti en utilisant plusieurs styles de feuilles de style XSL différentes.

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"))
'Load XSL
set xsl = Server.CreateObject("Microsoft.XMLDOM")
xsl.async = false
xsl.load(Server.MapPath("cdcatalog.xsl"))
'Transform file
Response.Write(xml.transformNode(xsl))
%>

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

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, puis envoie le résultat sous forme de XHTML à votre navigateur. La tâche est terminée !

Voyons comment cela fonctionne.