ous avons un fichier XML, nous avons une feuille de style
XSLT, comment appliquer l'un sur l'autre ? Comment exploiter
cela sur le web ? C'est maintenant qu'intervient un moteur
XSLT, il en existe plusieurs, sur presque toutes les plate-formes.
Je vais expliciter la mise en oeuvre d'un moteur XSLT, d'abord
en détaillant la mise en place sur un poste de travail "isolé",
puis en étudiant la configuration nécessaire
sur un serveur internet.
Mettez
un moteur XSLT dans votre PC
Travailler
en local permet non seulement de se faire la main mais aussi
de valider complétement ses différents documents,
ainsi que la transformation.
On
trouvera des listes de tels moteurs, plus ou moins exhaustives,
sur internet, par exemple sur www.xslt.com.
Cette liste est incomplète car il manque celui de
Microsoft : MSXML. Ces moteurs s'activent en ligne de comande
Ms-Dos, ou bien sont encapsulés dans des applications
windows. C'est le cas de cooktop,
que j'ai déjà cité. Cet outil, encore
gratuit, permet d'appréhender les technologies autour
de XML, de se faire la main avant d'investir le cas échéant
sur des outils mieux appropriés à nos besoins
mais payants. Cooktop encapsule l'exécution de plusieurs
moteurs XSLT dont celui que je vais détailler un
peu : sablotron.
.
Une
fois que vous avez téléchargé et installé
Cooktop, il faut que vous installiez la dernière
version de sablotron, la 0.60. Vous devez créer le
catalogue Sablot-0.60
sous Cooktop2200\xslt\sablot,
puis que vous y copiiez les fichiers de sablotron surtout
"sabcmd.exe".
Pourquoi utiliser la version 0.6 ? parce qu'elle prend en
compte plus d'encodage de caractères en sortie, de
façon transparente pour nous. Autrement il nous faut
installer d'autres composants manuellement.
Vous
devez enrichir la liste des processeurs XSLT exploitables
par cooktop en enrichissant le fichier XML accessible dans
un des sous-menus : "Manage XSLT engines", vous
le faîtes en dupliquant les lignes de la version 0.52
par exemple.
A
partir de là vous pouvez activer une transformation
XSLT sur votre document XML.
Et
sur le web ?
Là
encore, on a tout ce qu'il nous faut pour manipuler le web
en local avant de voir ce que l'on peut faire réellement.
Il suffit - une litote - d'installer Apache
et PHP
avec l'extension sablotron. Je vous conseille l'utilisation
des dernières versions de PHP, la 4.0.6 par exemple.
Mon propos n'est pas d'entrer dans les détails de
l'installation du serveur Web. Voir pour cela EasyPhp.
Mais
pour que sablotron fonctionne il faut d'une part que la
ligne d'extensions "php_sablot.dll"
soit décommenter dans php.ini, et d'autre part que
"expat.dll",
"iconv.dll"
et "sablot.dll"
soient copiés dans le catalogue système de
windows.
Nous
allons ensuite activer une transformation avec PHP, quelques
lignes de code suffisent :
$ficXml
= "sam.xml";
$ficXsl = "samSort.xsl";
$fp = fopen( $ficXsl,"r");
$length = filesize( $ficXsl);
$strXsl = fread( $fp, $length);
$fp = fopen( $ficXml,"r");
$length = filesize( $ficXml);
$strXml = fread( $fp, $length);
if( xslt_process ( $strXsl, $strXml, $result)) {
print $result;
} else {
print "Il y a une erreur";
}
Pour
faire propre, il faudrait écrire des fonctions et
afficher cela dans une page HTML.. Voir le fichier XML :
sam.xml,
le fichier XSL : samSort.xsl
et voir le résultat de la transformation.
Pour
aller plus loin
Il
existe une liste de discussion sur XML en français,
elle est très active et très riche, je vous
invite à consulter le site d'origine xmlfr.org.
Vous y retrouverez les archives de la liste ainsi que toutes
les annonces concernant la vie de la « nébuleuse »
XML.
Bonne
lecture, et à bientôt sur le forum ou par messagerie.
En cas de difficultés d'installation ou de paramétrage,
n'hésitez pas à me contacter. Je suis resté
volontairement superficiel afin de ne pas alourdir cet article..
<<<
Lire l'introduction
à XSL
Daniel Lucazeau
ajornet.com
Chef de projet Internet
|