Client XSLT
Si votre navigateur prend en charge XSLT, il peut être utilisé dans le navigateur pour convertir le document en XHTML.
Solution JavaScript
Dans le chapitre précédent, nous vous avons expliqué comment utiliser XSLT pour convertir un document XML en XHTML. Nous y parvenons en ajoutant une feuille de style XSL au fichier XML et en complétant la transformation via le navigateur.Même si cette approche fonctionne bien, inclure des références de feuilles de style dans les fichiers XML n'est pas toujours satisfaisant (par exemple, cette approche ne fonctionnera pas dans les navigateurs qui ne comprennent pas XSLT).
Une approche plus générale consiste à utiliser JavaScript pour terminer la conversion.
En utilisant JavaScript, nous pouvons :
Effectuer des tests de confirmation du navigateur
Utiliser en fonction des besoins du navigateur et de l'utilisateur Différentes feuilles de style
C'est tout le charme de XSLT ! L'un des objectifs de conception de XSLT est de permettre la conversion de données d'un format à un autre, tout en prenant en charge différents types de navigateurs et différents besoins des utilisateurs.
La transformation XSLT côté client deviendra certainement l'une des principales tâches effectuées par les navigateurs à l'avenir, et nous verrons également sa croissance sur des marchés spécifiques de navigateurs (braille, navigateurs auditifs, imprimantes réseau, équipements portables, etc. .).
Fichiers XML et fichiers XSL
Veuillez consulter ce document XML présenté dans le chapitre précédent :
<catalogue>
<cd>
<title>Empire Burlesque</title>
<artiste>Bob Dylan</artiste>
<pays>États-Unis</pays>
<entreprise>Columbia</entreprise>
<prix>10,90</prix>
<année>1985</année>
</cd>
.
.
</catalog>
查看 XML 文件。
以及附随的 XSL 样式表:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<corps>
<h2>Ma collection de CD</h2>
<bordure du tableau="1">
<tr bgcolor="#9acd32">
<th align="left">Titre</th>
<th align="left">Artiste</th>
</tr>
<xsl:for-each select="catalog/cd">
<tr>
<td><xsl:valeur-de select="titre" /></td>
<td><xsl:valeur de select="artiste" /></td>
</tr>
</xsl:pour-chacun>
</table>
</corps>
Fichier XML et fichier XSL. , XML 文件可使用多个不同的 XSL 样式表来进行转换。
在浏览器中把 XML 转换为 XHTML
这是用于在客户端把 XML 转换为 XHTML的源代码:
实例<html>
<head>
<script>
function loadXMLDoc(dname)
{
if (window.ActiveXObject)
{
xhttp=new ActiveXObject("Msxml2.XMLHTTP.3.0");
}
else
{
xhttp=new XMLHttpRequest();
}
xhttp.open("GET",dname,false);
xhttp.send("");
return xhttp.responseXML;
}
function displayResult()
{
xml=loadXMLDoc("cdcatalog.xml");
xsl=loadXMLDoc("cdcatalog.xsl");
// code for IE
if (window.ActiveXObject)
{
ex=xml.transformNode(xsl);
document.getElementById("example").innerHTML=ex;
}
// code for Mozilla, Firefox, Opera, etc.
else if (document.implementation && document.implementation.createDocument)
{
xsltProcessor=new XSLTProcessor();
xsltProcessor.importStylesheet(xsl);
resultDocument = xsltProcessor.transformToFragment(xml,document);
document.getElementById("example").appendChild(resultDocument);
}
}
</script>
</head>
<body onload="displayResult()">
<div id="example"></div>
</body>
</html>
运行实例 »点击 "运行实例" >
Conseil : Si vous ne savez pas comment écrire du JavaScript, suivez notre didacticiel JavaScript.
Explication des exemples :
Fonction LoadXMLDoc()
La fonction LoadXMLDoc() est utilisée pour charger des fichiers XML et XSL.
Il vérifie le type de navigateur dont dispose l'utilisateur et à partir de quel type de navigateur le fichier a été chargé.
Fonction displayResult()
Cette fonction est utilisée pour afficher des fichiers XML à l'aide de fichiers XSL pour définir des styles.
Charger les fichiers XML et XSL
Tester le type de navigateur dont dispose l'utilisateur Le navigateur prend en charge les objets ActiveX :
- Utilisez la méthode transformNode() pour appliquer la feuille de style XSL au document XML
Définissez que le document actuel ( id="example") contient un XML document avec les styles appliqués
- Si le navigateur de l'utilisateur ne prend pas en charge les objets ActiveX :
- Créez un nouvel objet XSLTProcessor et importer le fichier XSL
Utiliser la méthode transformToFragment() pour appliquer la feuille de style XSL au document XML
Définir le corps du document actuel (id="example") pour contenir un document XML avec les styles appliqués