Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1012 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP][XML] Afficher xml dans page php

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP][XML] Afficher xml dans page php

n°1524436
DaVe73
Posté le 06-03-2007 à 15:12:56  profilanswer
 

Bonjour à tous!
Voila je developpe un code pour afficher du xml dans une page php.
J'ai suivi la démarche situé a cette adresse afin d'utiliser php_xslt.dll:
 
http://www.developpez.net/forums/s [...] 059#771986
 
J'ai bien ajouté toutes les dll dans System32 mais lorsque je lance ma page j'ai le message suivant:

Code :
  1. Fatal error: Call to undefined function xslt_create() in C:\Program Files\EasyPHP1-8\www\exemple.php


Voici mon code php:

Code :
  1. <?php
  2.             $xh = xslt_create();
  3.             $file=fopen("monfichier.xml","r" );
  4.             $xml=fread($file,1024);
  5.             fclose($file);
  6.             $file=fopen("monfichier.xsl","r" );
  7.             $xsl=fread($file,16384);
  8.             fclose($file);
  9.             $arguments = array('/_xml' => $xml,'/_xsl' => $xsl);
  10.             $result = xslt_process($xh, 'arg:/_xml', 'arg:/_xsl', NULL, $arguments);
  11.             xslt_free($xh);
  12.             print "$result";
  13. ?>


Donc il ne reconnait pas l'extension php_xslt.dll (pourtant bien décommantée dans php.ini !)
Et lorsque je fait un phpinfo() je n'ai aucune trace de sablotron (j'ai juste xml, xmlreader et xmlwriter qui se sont ajoutés enable!) est-ce normal ?
 
Etant débutant en php j'ignore si c'est une bonne solution! Si il y a plus simple pour affiché du xml dans une page php je suis preneur!!!!!!
 
Merci d'avance! David

mood
Publicité
Posté le 06-03-2007 à 15:12:56  profilanswer
 

n°1524637
sielfried
Posté le 06-03-2007 à 17:37:46  profilanswer
 

Tu veux dire afficher la transformation d'un xml par du xslt, je suppose.
 
Déjà, ton code m'a l'air bien compliqué pour rien, il me semble que tu peux balancer directement le chemin d'un xml et d'un xsl à xslt_process... pas besoin de faire tout ça...
 
Pour l'extension non chargée, je sais pas, t'as bien redémarré le serveur et tout ? Et puis carrément tenté de rebooter la machine aussi ? Vu que ce sont des dll dans le path système, on sait jamais... :spamafote:


Message édité par sielfried le 06-03-2007 à 17:37:57

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1524940
rufo
Pas me confondre avec Lycos!
Posté le 07-03-2007 à 08:40:27  profilanswer
 

j'allais aussi demandé s'il avait bien redémarré easyphp.
 
ps : wamp est de meilleure qualité que easyphp ;)

n°1524956
DaVe73
Posté le 07-03-2007 à 09:09:28  profilanswer
 

Oui j'ai redémarré easyphp et mon pc mais rien y fait!
J'ai bien copier toutes les dll (iconv.dll, sablot.dll et expat.dll renommé en libexpat.dll)... Si quelqu'un a une idée !  
Sinon j'ai jeté un coup d'oeil sur la doc de xslt-process :
http://fr.php.net/manual/fr/function.xslt-process.php
En effet je pense qu'il y a plus simple mais comme pour l'instant ca ne marche pas je ne peut pas trop tester !!!!
 

n°1525002
DaVe73
Posté le 07-03-2007 à 10:08:22  profilanswer
 

Une petite remarque : j'utilise php5! J'ai vu sur la toile que sablotron n'existait plus avec php5 (remplacé par le package php5-xsl : "This package provides a module for XSL using the libxslt XSL parse" )
Je suis un peu perdu! :? Est-ce que quelqu'un utilise sablotron avec php5 par hasard?

n°1525007
sielfried
Posté le 07-03-2007 à 10:15:54  profilanswer
 
n°1525019
rufo
Pas me confondre avec Lycos!
Posté le 07-03-2007 à 10:28:04  profilanswer
 

en php5, faut activer l'extension nommée xsl : http://fr.php.net/manual/fr/ref.xsl.php
 
Voici un ex de transformation xsl d'une chaîne de caractères XML et d'une chaîne de caractères XSL et retourne le résultat dans une chaîne :  

Code :
  1. // Create a DOM document and load the XML stream
  2.                 $XmlParser = new DomDocument;
  3.                 $XmlParser->loadXML($XmlData);
  4.  
  5.                 // Create a DOM document and load the XSL stylesheet
  6.                 $XslParser = new DomDocument;
  7.                 $XslParser->loadXML($XslData);
  8.  
  9.                 // Create the XSL processor
  10.                 $xp = new XsltProcessor();
  11.  
  12.                 // Import the XSL styelsheet into the XSLT process
  13.                 $xp->importStylesheet($XslParser);
  14.  
  15.                 // We take into account the parameters
  16.                 foreach($Params as $key => $CurrentValue)
  17.                 {
  18.                     $xp->setParameter('', $key, $CurrentValue);
  19.                 }
  20.  
  21.                 // We display the result
  22.                 $TransformResult = $xp->transformToXML($XmlParser);
  23.  
  24.                 // Return the generated string
  25.                 return $TransformResult;


Message édité par rufo le 07-03-2007 à 10:29:31
n°1525070
DaVe73
Posté le 07-03-2007 à 11:21:35  profilanswer
 

Merci pour cette réponse! Juste un truc : il ne reconnait pas  

Code :
  1. $xp = new XsltProcessor();


Je pense que c'est moi qui est mal copier libxml2.dll !  
Je l'ai copié dans C:\WINDOWS\system32. Dans php.ini la ligne : extension=php_xslt.dll est bien décommenté.
Qu'est-ce qu'il faut faire de plus?

n°1525079
rufo
Pas me confondre avec Lycos!
Posté le 07-03-2007 à 11:39:37  profilanswer
 

franchement, installes wamp 1.6. Y'a rien à bidouiller, tout marche du premier coup...


Message édité par rufo le 07-03-2007 à 11:39:52
n°1525213
DaVe73
Posté le 07-03-2007 à 14:15:36  profilanswer
 

Bon je dois faire ça comme un naz mais avec wamp 1.7 ça ne marche pas non plus!!!!!!
J'ai exactement la même erreur qu'avec easyphp :  

Code :
  1. Fatal error: Class 'XSLTProcessor' not found


mood
Publicité
Posté le 07-03-2007 à 14:15:36  profilanswer
 

n°1525337
rufo
Pas me confondre avec Lycos!
Posté le 07-03-2007 à 15:39:11  profilanswer
 

dans le php.ini (qui se trouve cette fois-ci dans c:\...\wamp\Apache2\bin) t'as bien décommenté extension=php_xsl.dll et relancé le serveur?

n°1527195
DaVe73
Posté le 12-03-2007 à 10:01:01  profilanswer
 

Merci Rufo! En effet c'est moi qui est fait le boulet! J'avais décommenté cette ligne mais pas dans le bon php.ini (j'avais modifié celui dans C:\wamp\php !).
Du coup avec ce bout de code (récupéré dans la doc php) j'affiche mon fichier nikel :

Code :
  1. <?php
  2. $XmlData = "monfichier.xml";
  3. $XslData = "monfichier.xsl";
  4. $doc = new DOMDocument();
  5. $xsl = new XSLTProcessor();
  6. $doc->load($XslData);
  7. $xsl->importStyleSheet($doc);
  8. $doc->load($XmlData);
  9. echo $xsl->transformToXML($doc);
  10. ?>


Merci encore!


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [PHP][XML] Afficher xml dans page php

 

Sujets relatifs
[PHP] Redirection après formulaireRésultat code PHP dans une variable --> include ?
[PHP/Flash] - Barre de progression[Javascript/PHP] Recadrer une photo
[Resolu] Coder le style en PHP (police, taille police)Placement d'une page sur un site
PHP/sqlFichier XML et typage de données
[PHP] problème lecture / écriture dans un fichier[PHP] Boucle et $_FILE
Plus de sujets relatifs à : [PHP][XML] Afficher xml dans page php


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR