Passage de paramètre PHP/JS -> XSL ?

Passage de paramètre PHP/JS -> XSL ? - XML/XSL - Programmation

Marsh Posté le 07-01-2006 à 14:59:41    

Je ne sais pas si ca se fait, j'ai bien une méthode pour passer par du xsql, mais il faudrait que j'évite ...
 
donc est ce possible de faire un truc comme :
 

Code :
  1. Header("Location: monfichier.xml?parametre=..." );


 
et ensute de récupérer paramtre ds le xsl :??:
Je sais que c'est bidon, mais je n'ai pas d'autre choix que d'utiliser du XML :)
 
Merci !


Message édité par LeMakisar le 08-01-2006 à 16:54:03
Reply

Marsh Posté le 07-01-2006 à 14:59:41   

Reply

Marsh Posté le 07-01-2006 à 15:36:59    

Pourquoi ne pas faire tout le traitement avec dom ?


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 07-01-2006 à 15:49:55    

mon problème est que je suis totalement débutant et je ne connais pas du tout DOM ...
 
J'ai trouvé une solution à mon problème, mais qui ne semble pas fonctionner (du moins pas avec la version de PHP dont je dispose ...)
 
Si tu peux me donner un exemple ou une piste pour DOM pour que je recherche je cracherais pas dessus :)
 
edit : visiblement après un coup d'oeil rapide, DOM c'est tou ce qui est xslt_process & co ? ca ne marche pas que sous PHP5 ca ?


Message édité par LeMakisar le 07-01-2006 à 15:51:44
Reply

Marsh Posté le 07-01-2006 à 15:57:19    

en effet, ca en veut pas :/
 
Fatal error: Cannot instantiate non-existent class: domdocument in ....
 
d'après ce que j'ai vu, ca vient de la configuration de PHP, donc c'est mort en somme ...

Reply

Marsh Posté le 08-01-2006 à 16:47:54    

:bounce:
 
Pour finalemen je teste autre chose, qui n'a pas l'air de marcher non plus ...
la même chose en JS en fait :  
 
Voila mon cde :  
 

Code :
  1. <html>
  2. <script language="javascript">
  3. function strHTML(PathXML,
  4. PathXSL,valParam) {
  5. var xslt = new ActiveXObject("Msxml2.XSLTemplate" );
  6. // chargement du fichier XSL  
  7. var xsl = new ActiveXObject("Msxml2.FreeThreadedDOMDocument" ) ;
  8. xsl.async = false;
  9. xsl.load(PathXSL);
  10. if (xsl.parseError.errorCode != 0) {
  11.      var myErr = xsl.parseError;
  12.      alert("Erreu XSLT: " + myErr.reason);
  13. } else {
  14.  xslt.stylesheet = xsl;
  15.  // chargement du fichier XML  
  16.  var xml = new ActiveXObject("Microsoft.XMLDOM" );
  17.  xml.async = false;
  18.  xml.load(PathXML);
  19.  if (xml.parseError.errorCode != 0) {
  20.         var myErr = xml.parseError;
  21.         alert("Erreur XML: " + myErr.reason);
  22.      } else {
  23.   // Instanciation d'un processeur XSLT et ajout des parametres à la xsl  
  24.   var xslProc = xslt.createProcessor();
  25.   xslProc.input = xml;
  26.   xslProc.addParameter("valeur", valParam);
  27.   // retourne la transformation en Html  
  28.   xslProc.transform();
  29.   document.getElementById('resultat').innerHTML = xslProc.output;
  30.  }
  31. }
  32. }
  33. </script>
  34. <body onLoad="strHTML('<?php echo "commandes_tmp$idClient.xml";?>','<?php echo "commandes_archivees.xsl";?>','<?php echo $id;?>');">
  35. <div id="resultat">
  36. </div>
  37. </body>
  38. </html>


 
j'ai vérifié les valeurs passées à la fonction js sont OK, mais la sortie ne marche pas !
 
Extrait de mon fichier XSL :

Code :
  1. <?xml version="1.0" encoding="ISO-8859-1" ?>
  2. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  3. <xsl:output method="html"/>
  4. <xsl:template match="/">
  5.   <xsl:param name="valeur" />
  6.   id <xsl:value-of select="$valeur" />
  7. </xsl:template>
  8. ....
  9. </xsl:stylesheet>


 
Par contre le xml commence par :  
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet href="commandes_archivees.xsl" type="text/xsl"?>
 
Je sais pas s'il faut garder ou non la 2e ligne, donc j'ai essayé avec et sans, mais sans succès ...
 
En gros tout ce que ca m'affiche c'est : "id=" et rien d'autre ...
 
si qqn a la moindre idée, parce que la je craque de pas arriver à faire marcher un trc aussi con :cry:

Reply

Marsh Posté le 08-01-2006 à 17:11:56    

ca y est j'ai trouvé l'erreur, en fait le <xsl:param name="valeur" /> dot être en tout début de document XSL, donc voila :)
 
j'espère que ca aidera du monde un jour ou lautre :D

Reply

Sujets relatifs:

Leave a Replay

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