XSLT PHP et Do;document

XSLT PHP et Do;document - PHP - Programmation

Marsh Posté le 28-11-2005 à 17:49:13    

Bonjour,
 
J'ai un document XML et un XSL qui vient transformer mon fichier et me donne un joli document HTML.
J'ai rapidement eu la necessite d'appliquer differentes XSL a mon meme fichier XML. Afin de statisfaire rapidement l'acces au donnees j'ai tout d'abord utiliser les ActiveX de IE ... Et cela fonctionne parfaitement sous IE
Maintenant, vu que je prefere depuis longtemps acceder aux pages web via Firefox, je cherche un moyen de le rendre compatible pour d'autre Browser : Et donc faire la transformation cote serveur ...
 
Voici les info PHP du serveur :
 
DOM/XML              enabled
DOM/XML API Version  20020815
libxml Version                20616
HTML Support             enabled
XPath Support             enabled
XPointer Support     enabled
DOM/XSLT             enabled
libxslt Version        1.1.12
libxslt compiled against libxml Version  2.6.16

 
 
Mais maleuheuresement la transformation avec se code PHP ne fonctionne pas tres bien :
JE recupere ma structure HTML mais aucune donnees ne s'affiche !
 

Code :
  1. <?php
  2. /* Allocation du processeur XSLT */
  3. $xh = xslt_create();
  4. /* Traitement du document */
  5. if (xslt_process($xh, 'XML.xml', 'XSL.xsl', 'result.xml')) {
  6.     readfile('result.xml');
  7. } else {
  8.     echo " La raison est " . xslt_error($xh) . " et ";
  9.     echo " le code d'erreur est " . xslt_errno($xh);
  10. }
  11. xslt_free($xh);
  12. ?>


 
Mon fichier result.xml est identiaue a mon fichier XSL.xsl !
Des ideees sur ce probleme ? J'ai tester la transformation directement en liant les fichier directement, et la ca marche ... Bizar ?
 
Merci,
 
 

Reply

Marsh Posté le 28-11-2005 à 17:49:13   

Reply

Marsh Posté le 28-11-2005 à 21:08:59    

PHP4 ou PHP5 ?
 
 
PHP4 :

$xml =& domxml_open_file('XML.xml');
 
$xsl =& domxml_xslt_stylesheet_file('XSL.xsl');
 
$result =& $xsl->process($xml);
 
echo $result->dump_mem();


 
PHP5 :

$xml = new DOMDocument;
$xml->load('XML.xml');
 
$xsl = new DOMDocument;
$xsl->load('XSL.xsl');
 
$xslt_proc = new XSLTProcessor;
$xslt_proc->importStylesheet($xsl);
 
echo $xslt_proc->transformToXml($xml);

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed