Utiliser XSLT

Eléphanteau du PHP | 15 Messages

17 avr. 2006, 15:14

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

Mammouth du PHP | 19672 Messages

17 avr. 2006, 23:57

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.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 15 Messages

18 avr. 2006, 08:23

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é…

ViPHP
ViPHP | 656 Messages

18 avr. 2006, 08:47

Tu la rajoute :wink:

Mammouth du PHP | 1311 Messages

18 avr. 2006, 08:51

salut
tu a quelle version de php

Eléphanteau du PHP | 15 Messages

18 avr. 2006, 10:59

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

Mammouth du PHP | 1311 Messages

18 avr. 2006, 11:01

apparement tu a bien installer la lib
on peut ton code php et xsl

Eléphanteau du PHP | 15 Messages

18 avr. 2006, 11:30

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>

Mammouth du PHP | 1311 Messages

18 avr. 2006, 12:17

et comme ceci
$moteur = new xsltProcessor();

 domdocument::load('Page.xsl');
$moteur->importStylesheet(domdocument::load('Page.xsl'));
echo $moteur->transformToXml(domdocument::load('KillBill.xml')); 

Eléphanteau du PHP | 15 Messages

18 avr. 2006, 12:29

Marche pas…

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

20 avr. 2006, 00:07

Tu t'es planté de namespace, c'est www.w3.org. De plus, tu as mal fermé un tag <b>

Code : Tout sélectionner

<b><xsl:value-of select="concat(@prenom, ' ',@nom)" /></b>
À part ça, ça a l'air de marcher (je n'ai pas KillBill.xml donc difficile à dire).

Eléphanteau du PHP | 15 Messages

20 avr. 2006, 08:27

Merci beaucoup, ça marche !!!