Page 1 sur 1
Utiliser XSLT
Posté : 17 avr. 2006, 15:14
par Tchouboudou
Bonjour tout le monde… J'ai testé quelques script de transformation avec XSLT. Seulement, je ne peut pas utiliser XSLT. Voilà, j'ai lu qu'il fallait décommenter la ligne php-xsl.dll dans php.ini. Sauf que je ne trouve pas cette ligne.
Pouvez-vous m'aider ?
Merci d'avance,
Tchouboudou
Posté : 17 avr. 2006, 23:57
par Cyrano
Cherche la ligne:
extension=php_xsl.dll
Si ton php.ini ressemble à peu près au mien, c'est aux alentours de la ligne 615.
Et n'oublie pas ensuite d'enregistrer le fichier et de redémarrer le serveur Apache.
Posté : 18 avr. 2006, 08:23
par Tchouboudou
Je la trouve pas… J'ai fait une rechercher dans mon document, je ne trouve pas php-xsl.dll.
Il faudrait que je télécharge libxml2, mais je sais pas ce qu'il faut faire une fois téléchargé…
Posté : 18 avr. 2006, 08:47
par Ultiny
Tu la rajoute

Posté : 18 avr. 2006, 08:51
par jeff
salut
tu a quelle version de php
Posté : 18 avr. 2006, 10:59
par Tchouboudou
J'ai la 5, je suis sous MAC (avec MAMP), j'ai vu dans le dossier Library/lib/ que j'avais plein de fichier libxml. J'ai rajouté la ligne donné par Cyrano, j'ai redémarrer Apache, et ça marche toujours pas…
Voici mes erreurs :
Warning: XSLTProcessor::importStylesheet() [function.importStylesheet]: compilation error: file /Applications/MAMP/bin/mamp/XML/Page.xsl line 3 element stylesheet in /Applications/MAMP/bin/mamp/XML/index.php on line 5
Warning: XSLTProcessor::importStylesheet() [function.importStylesheet]: xsltParseStylesheetProcess : document is not a stylesheet in /Applications/MAMP/bin/mamp/XML/index.php on line 5
Warning: XSLTProcessor::transformToXml() [function.transformToXml]: No stylesheet associated to this object in /Applications/MAMP/bin/mamp/XML/index.php on line 8
Posté : 18 avr. 2006, 11:01
par jeff
apparement tu a bien installer la lib
on peut ton code php et xsl
Posté : 18 avr. 2006, 11:30
par Tchouboudou
Index.php
<?php
$moteur = new xsltProcessor();
$style = new domDocument();
$style->load('Page.xsl');
$moteur->importStylesheet($style);
$source = new domDocument();
$source->load('KillBill.xml');
echo $moteur->transformToXml($source);
?>
Film.xsl
Code : Tout sélectionner
<?xml version="1.0" encoding="ISO_8859-1" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w2.org/1999/XSL/Transform">
<xsl:template match="Film">
<h1><i><xsl:value-of select="titre" /></i></h1>
<xsl:value-of select="genre" />
<i><xsl:value-of select="code_pays" /></i>
<xsl:value-of select="annee" />.
Mis en scène par <b><xsl:value-of select="concat(Realisateur/@prenom, ' ', Realisateur/@nom)" /></b>
<h3>Acteurs :</h3>
<xsl:for-each select="Acteur">
<b><xsl:value-of select="concat(@prenom, ' ',@nom)" /><b>
<xsl:value-of select="@nom_role" /><br />
</xsl:for-each>
<h3>Résumé :</h3>
<xsl:value-of select="resume" />
</xsl:template>
</xsl:stylesheet>
Page.xsl
Code : Tout sélectionner
<?xml version="1.0" encoding="ISO-8859-1" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w2.org/1999/XSL/Transform">
<xsl:include href="Film.xsl" />
<xsl:output method="html" encoding="ISO-8859-1" />
<xsl:template match="/">
<html>
<head>
<title>Page produite avec XSLT</title>
</head>
<body>
<center><h1>Résultat de la mise en forme XSLT</h1></center>
Voici la liste des films, mis au format HTML
<xsl:apply-templates />
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Posté : 18 avr. 2006, 12:17
par jeff
et comme ceci
$moteur = new xsltProcessor();
domdocument::load('Page.xsl');
$moteur->importStylesheet(domdocument::load('Page.xsl'));
echo $moteur->transformToXml(domdocument::load('KillBill.xml'));
Posté : 18 avr. 2006, 12:29
par Tchouboudou
Marche pas…
Posté : 20 avr. 2006, 00:07
par Hubert Roksor
Tu t'es planté de namespace, c'est www.w
3.org. De plus, tu as mal fermé un tag <b>
À part ça, ça a l'air de marcher (je n'ai pas KillBill.xml donc difficile à dire).
Posté : 20 avr. 2006, 08:27
par Tchouboudou
Merci beaucoup, ça marche !!!