XSLT - Sur le serveur
Pour rendre les données XML disponibles pour tous les types de navigateurs, nous pouvons transformer le document XML sur le SERVEUR et le renvoyer au navigateur au format XHTML.
Une solution multi-navigateurs
Dans le chapitre précédent, nous avons expliqué comment XSLT peut être utilisé pour transformer un document XML en XHTML dans le navigateur. Nous avons utilisé un JavaScript et un analyseur XML pour la transformation. Cependant, cela ne fonctionnera pas dans un navigateur qui n'a pas d'analyseur XML.Pour rendre les données XML disponibles pour tous les types de navigateurs, nous pouvons transformer le document XML sur le serveur et le renvoyer au navigateur au format XHTML.
C'est une autre beauté de XSLT. L'un des objectifs de conception de XSLT était de rendre possible la transformation de données d'un format à un autre sur un serveur, en renvoyant des données lisibles à tous les types de navigateurs.
Le fichier XML et le fichier XSLT
Regardez le document XML que vous avez vu dans les chapitres précédents :
<?xml version="1.0" encoding="UTF-8"?>
<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>
Et la feuille de style XSL qui l'accompagne :
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<h2>My CD Collection</h2>
<table border="1">
<tr bgcolor="#9acd32">
<th style="text-align:left">Title</th>
<th style="text-align:left">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>
</xsl:template>
</xsl:stylesheet>
Notez que le fichier XML n'a pas de référence au fichier XSL.
IMPORTANT : La phrase ci-dessus indique qu'un fichier XML peut être transformé à l'aide de nombreuses feuilles de style XSL différentes.
Code PHP : transformer XML en XHTML sur le serveur
Voici le code source PHP nécessaire pour transformer le fichier XML en XHTML sur le serveur :
<?php
// Load XML file
$xml = new DOMDocument;
$xml->load('cdcatalog.xml');
// Load XSL file
$xsl = new DOMDocument;
$xsl->load('cdcatalog.xsl');
//
Configure the transformer
$proc = new XSLTProcessor;
// Attach the xsl
rules
$proc->importStyleSheet($xsl);
echo $proc->transformToXML($xml);
?>
Astuce : Si vous ne savez pas comment écrire PHP, veuillez étudier notre tutoriel PHP .
Voyez comment cela fonctionne avec PHP .
Code ASP : transformer XML en XHTML sur le serveur
Voici le code source ASP nécessaire pour transformer le fichier XML en XHTML sur le serveur :
<%
'Load XML file
set xml = Server.CreateObject("Microsoft.XMLDOM")
xml.async = false
xml.load(Server.MapPath("cdcatalog.xml"))
'Load XSL file
set xsl = Server.CreateObject("Microsoft.XMLDOM")
xsl.async = false
xsl.load(Server.MapPath("cdcatalog.xsl"))
'Transform file
Response.Write(xml.transformNode(xsl))
%>
Voyez comment cela fonctionne avec ASP .