Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > XML > XSL & XSLT
XSL & XSLT Forum d'entraide pour les extensions XSL et XSLT permettant de manipuler vos documents XML à l'aide de feuilles de style et de transformations avec PHP. Avant de poster -> tutoriels XSL et XSLT
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/05/2007, 20h03   #1
Invité de passage
 
Étudiant
Inscription : mai 2007
Messages : 8
Détails du profil
Informations personnelles :
Âge : 26

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2007
Messages : 8
Points : 2
Points : 2
Par défaut [XSLT] Installation librairie domxml, libxml2, libxslt

tout d'abord bonjour c'est la moindre des choses :p

environnement : windows xp pro / wamp 1.7.0

donc voici mon petit problème qui commence doucement à me les briser bref ..
Pour un projet que j'ai à faire pour ma fac, je veux à partir d'un fichier xml et d'un fichier xslt créer un fichier html. Donc après des recherches sur le net je trouve la solution :

il faut utiliser les librairies dom_xml, libxml2 et libxslt. Bon ok, easy !!

dom_xml => présent dans wamp juste à l'activer dans le php.ini => c'est fait et c'est ok (extension=php_domxml.dll et présent dans le phpinfo() )

libxml2 et libxslt => téléchargement des versions libxml2-2.6.27.win32 et libxslt-1.1.19.win32, puis mise en place des fichiers libxml2.dll et libxslt.dll dans le repertoire C:\wamp\php\ext. J'ai également pour ces deux fichiers activer les librairies dans wamp en mettant dans le php.ini :

Citation:
extension=libxml2.dll
extension=libxslt.dll
j'ai placé les répertoires qui contiennent les fichiers dézippés de ces deux librairies dans c:\wamp\php\ et j'ai précisé dans mon fichier test.php :

Code :
1
2
set_include_path(get_include_path() . ";c:\php\libxml2");
set_include_path(get_include_path() . ";c:\php\libxslt");
croyant que cela résoudrait tous mes maux .. en vain.

Résultat quand jéxécute ce bout de code (mon test.php) :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
set_include_path(get_include_path() . ";c:\php\libxml2");
set_include_path(get_include_path() . ";c:\php\libxslt");
 
//désignation des fichiers utiles
$the_root=$_SERVER["DOCUMENT_ROOT"].'/';		//répertoire racine du serveur
$xml_file = $the_root.'c2i/pour_etudiant/result_xml/ex6_etab1_etud444.xml';			// fichier xml de contenu
$xsl_file = $the_root.'c2i/pour_etudiant/style.xsl';		// transformation xsl 
 
// chargement des fichiers
$DomXmlFile = domxml_open_file($xml_file);
$DomXslTrans = domxml_xslt_stylesheet_file($xsl_file);
 
//application de la transformation et envoi à l'internaute
$DomXmlFileResult = $DomXslTrans->process($DomXmlFile, $PARAM);	// le miracle de la transformation XSLT
$XmlFileResult = $DomXmlFileResult->dump_mem(true);		// l'objet DOM devient chaîne
 
print $XmlFileResult;
voilà la réponse :
Citation:
Fatal error: Call to undefined function domxml_xslt_stylesheet_file() in C:\wamp\www\c2i\pour_etudiant\test.php on line 10
Si quelqu'un pourrait m'aider ca serait avec un grand amour que je l'aimerai

Voilà le phpinfo() :
Citation:
domxml
DOM/XML enabled
DOM/XML API Version 20030407
libxml Version 20626
HTML Support enabled
XPath Support enabled
XPointer Support enabled

libxml
libXML support active
libXML Version 2.6.26
libXML streams enabled

xsl
XSL enabled
libxslt Version 1.1.17
libxslt compiled against libxml Version 2.6.26
EXSLT enabled
libexslt Version 0.8.13

J'implore votre aide , merci d'avance
Djoulious est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2007, 15h15   #2
Invité de passage
 
Inscription : mai 2007
Messages : 1
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 1
Points : 1
Points : 1
Par défaut pb de version

bonjour,
je me suis heurté à un problème similaire en activant des DLL dans le php.ini.

activez les logs du serveur apache et rechargez apache, les logs vont sans doute vous dire que la version des DLL concernées et la version de php.exe sont différentes et qu'il ne peut donc pas les charger. Ensuite, bonne chasse pour trouver la version adéquate...
pts31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2007, 22h49   #3
Invité de passage
 
Étudiant
Inscription : mai 2007
Messages : 8
Détails du profil
Informations personnelles :
Âge : 26

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2007
Messages : 8
Points : 2
Points : 2
Citation:
[13-May-2007 22:39:23] PHP Warning: PHP Startup: Invalid library (maybe not a PHP library) 'libxml2.dll' in Unknown on line 0

[13-May-2007 22:39:23] PHP Warning: PHP Startup: Unable to load dynamic library 'c:/wamp/php/ext/libexslt.dll' - La procédure spécifiée est introuvable.
in Unknown on line 0

[13-May-2007 22:39:23] PHP Warning: PHP Startup: Unable to load dynamic library 'c:/wamp/php/ext/libxslt.dll' - La procédure spécifiée est introuvable.
in Unknown on line 0

[13-May-2007 22:39:23] PHP Warning: PHP Startup: Unable to load dynamic library 'c:/wamp/php/ext/php_xslt.dll' - Le module spécifié est introuvable.
in Unknown on line 0
voilà ce que j'ai trouvé dans mon fichier log php
(aucun signe particulier a trouver dans le log de apache)

Donc je ne vois pas pourquoi il ne trouve pas

PS : merci de ta réponse et ton aide précieuse
Djoulious est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2007, 11h14   #4
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Citation:
extension=libxml2.dll
extension=libxslt.dll
Ces deux librairies ne sont pas des extensions PHP ! Les deux suivantes vous suffisent :
Citation:
extension=php_domxml.dll
extension=php_xslt.dll
Et apparemment cette dernière n'est pas trouvée et c'est plutôt de ce côté-là qu'il vous faut chercher pour le moment.

Vous êtes bien en PHP 4 ?
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2007, 01h04   #5
Invité de passage
 
Étudiant
Inscription : mai 2007
Messages : 8
Détails du profil
Informations personnelles :
Âge : 26

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2007
Messages : 8
Points : 2
Points : 2
euh nan php5
Djoulious est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2007, 10h17   #6
Expert Confirmé Sénior
 
Avatar de GrandFather
 
Inscription : mai 2004
Messages : 4 490
Détails du profil
Informations personnelles :
Âge : 42

Informations forums :
Inscription : mai 2004
Messages : 4 490
Points : 5 049
Points : 5 049
Bonjour,

DOMXML est complètement obsolète depuis PHP5, il faut lui préférer DOM. Quant à XSLT, il faut faire usage de l'objet XSLTProcessor défini dans la librairie XSL. Ces deux librairies constituent des interfaces à libxml2 et libxslt.
__________________
FAQ XML
------------
« Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
Giacomo Leopardi
GrandFather est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2007, 15h08   #7
Invité de passage
 
Étudiant
Inscription : mai 2007
Messages : 8
Détails du profil
Informations personnelles :
Âge : 26

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2007
Messages : 8
Points : 2
Points : 2
merci de ta réponse, j'ai donc refait le code qui est maintenant le suivant :
Code :
1
2
3
4
5
6
7
8
9
10
11
 
20. $xml_file = $the_root.'c2i/pour_etudiant/result_xml/ex6_etab1_etud444.xml';			// fichier xml de contenu
21. $xsl_file = $the_root.'c2i/pour_etudiant/style.xsl';		// transformation xsl 
21.
22. $xml = DOMDocument::load($xml_file); // le fichier xml
23. $xsl = DOMDocument::load($xsl_file); // le fichier xsl
24. 
25. $proc = new XSLTProcessor;
26. $proc->importStyleSheet($xsl);
27.
28. $proc->transformToURI($xml, 'out.html');
et en réponse j'ai
Citation:
Fatal error: Call to undefined method domdocument::load() in C:\wamp\www\c2i\pour_etudiant\test.php on line 23


alors que normalement il n'y a pas besoin d'installation et j'ai activé l'extension php_xsl.dll

à part si cela vient de ca
Citation:
PHP 5 inclut l'extension XSL par défaut et peut être activée en ajoutant l'argument --with-xsl[=DIR] à votre ligne de configuration. DIR est le dossier d'installation de la bibliothèque libxslt.
si tel est le cas, si vous pouvez me préciser ou rajouter cela.

Merci de vos réponses très précieuses
Djoulious est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2007, 16h06   #8
Invité de passage
 
Étudiant
Inscription : mai 2007
Messages : 8
Détails du profil
Informations personnelles :
Âge : 26

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2007
Messages : 8
Points : 2
Points : 2
Par défaut après quelques tests

alors ce qui est bizarre c'est que ce bout de code il aime, ca passe :
Code :
$xml = domxml_open_file($xml_file);
mais celui là non il connait pas :
Code :
$xml = DOMDocument::load($xml_file);
il n'aime pas non plus :
Code :
$DomXslTrans = domxml_xslt_stylesheet_file($xsl_file);
mais il aime :
Code :
$proc->importStyleSheet($xsl_file);
donc en gros si j'ai php4 j'ai bien installé domxml mais pas libxslt
et si j'ai php5 il n'aime pas le load (fonction de DOM) mais il aime importStyleSheet (fonction de XSLTProcessor)

j'avoue ne plus trop comprendre, si quelqu'un peut m'aider ..
Djoulious est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/05/2007, 12h48   #9
Invité de passage
 
Étudiant
Inscription : mai 2007
Messages : 8
Détails du profil
Informations personnelles :
Âge : 26

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2007
Messages : 8
Points : 2
Points : 2
Par défaut snif

.. donc personne pour m'aider ? bon bah alors au final je garderai mon fichier xml qu'il ouvrira avec i.e ou firefox

merci de vos réponses en tout cas
Djoulious est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h36.


 
 
 
 
Partenaires

Hébergement Web