IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[XSLT] Installation librairie domxml, libxml2, libxslt


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 8
    Points : 4
    Points
    4
    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 :

    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 :
    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() :
    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

  2. #2
    Nouveau Candidat au Club
    Inscrit en
    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...

  3. #3
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    [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

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    extension=libxml2.dll
    extension=libxslt.dll
    Ces deux librairies ne sont pas des extensions PHP ! Les deux suivantes vous suffisent :
    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 ?

  5. #5
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    euh nan php5

  6. #6
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    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.

  7. #7
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    merci de ta réponse, j'ai donc refait le code qui est maintenant le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    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
    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

  8. #8
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 8
    Points : 4
    Points
    4
    Par défaut après quelques tests
    alors ce qui est bizarre c'est que ce bout de code il aime, ca passe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $xml = domxml_open_file($xml_file);
    mais celui là non il connait pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $xml = DOMDocument::load($xml_file);
    il n'aime pas non plus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $DomXslTrans = domxml_xslt_stylesheet_file($xsl_file);
    mais il aime :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $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 ..

  9. #9
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 8
    Points : 4
    Points
    4
    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

Discussions similaires

  1. installer librairie opengl
    Par youp_db dans le forum Code::Blocks
    Réponses: 3
    Dernier message: 18/02/2010, 12h42
  2. [QBasic 4.5] Installation librairie advbas
    Par msteffen dans le forum Basic
    Réponses: 2
    Dernier message: 14/04/2007, 15h02
  3. Problème installation librairie SDL
    Par je®ome dans le forum Administration système
    Réponses: 2
    Dernier message: 17/05/2006, 12h23
  4. [install librairie] sous windows -
    Par Mireyu_c dans le forum Déploiement/Installation
    Réponses: 2
    Dernier message: 21/03/2006, 09h23
  5. [XSLT] Installation de libxslt ???
    Par ghohm dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 22/09/2005, 17h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo