Pour que les données XML disponibles à tous les types de navigateurs, nous pouvons transformer le document XML sur le serveur et l'envoyer au navigateur XHTML.
Une solution Croix du navigateur
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 ne dispose pas d'un analyseur XML.Pour que les données XML disponibles à tous les types de navigateurs, nous pouvons transformer le document XML sur le serveur et envoyer au navigateur XHTML.
C'est une autre beauté de XSLT. L'un des objectifs de conception pour XSLT était de permettre de transformer les données d'un format à l'autre sur un serveur, 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 d'accompagnement:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<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>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Notice that the XML file does not have a reference to the XSL file.
IMPORTANT: La phrase ci - dessus indique qu'un fichier XML peut être transformé à l' aide de différentes feuilles de style XSL.
Code PHP: Transformer XML à 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);
?>
Tip: Si vous ne savez pas comment écrire PHP, s'il vous plaît étudier notre tutoriel PHP .
Voyez comment cela fonctionne avec PHP .
Code ASP: Transformer XML à 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))
%>
Tip: Si vous ne savez pas comment écrire ASP, s'il vous plaît étudier notre tutoriel ASP .
Voyez comment cela fonctionne avec ASP .