php5 xslt et variable

php5 xslt et variable - PHP - Programmation

Marsh Posté le 06-12-2006 à 23:56:49    

bonjour a tous,
 
je m'explique
j'ai un fichier f.xml , f.xsl   et je voudrais utiliser php comme processeur xslt
jusqu'ici pas de probleme.
 

Code :
  1. $xslt = new XSLTProcessor();
  2. // Chargement du fichier XML
  3. $xml = new domDocument();
  4. $xml -> load('f.xml');
  5. // Chargement du fichier XSL
  6. $xsl = new domDocument();
  7. $xsl -> load('f2.xsl');
  8. // Import de la feuille XSL
  9. $xslt -> importStylesheet($xsl);
  10. // Transformation et affichage du résultat
  11. echo $xslt -> transformToXml($xml);


 
mais si je rajoute un parametre  

Code :
  1. $xslt_params["idl"] ='3';
  2. $xslt->setParameter( NULL, $xslt_params );


alors la, impossible de l'utiliser ( mon param idl )dans mon .xsl de maniere "normal"
par ex
<xsl:value-of select="$idl "/>  affiche bien 3 , normal, mais...
<xsl:for-each select="//livre[./id  =  1 ]"> passe bien ( une egalité standard quoi ), mais avec un parametre :
<xsl:for-each select="//livre[./id  =  $idl ]">  ne passe pas ( mais passe en ligne de commande ), par contre
<xsl:for-each select="//livre[./id  &gt;  $idl ]">   fonctionne bien ( en php5 et en ligne de commande )
 
si encore je trouvais le caract spe pour =, ca irais...
je n'imagine pas faire des <= et >= ( &gt;= et &lt;= ) pour obtenir une egalité.
 
 
si qqun a connu ce probleme  :jap:  
merci.


Message édité par notornis le 07-12-2006 à 00:00:49
Reply

Marsh Posté le 06-12-2006 à 23:56:49   

Reply

Marsh Posté le 07-12-2006 à 11:04:10    

Tu l'as au moins déclaré dans le XSL ton paramètre ?

Reply

Marsh Posté le 07-12-2006 à 19:41:55    

FlorentG a écrit :

Tu l'as au moins déclaré dans le XSL ton paramètre ?


oui , oui  
 
 je peux l'aficher sans prob, lorsque je l'utilise dans un test :
- en  ligne de commande , ca passe
- avec le processeur xslt php, ca passe pas. ( mais je peux l'afficher , c juste le test avec un  = qui passe pas)


Message édité par notornis le 07-12-2006 à 19:42:38
Reply

Marsh Posté le 08-12-2006 à 07:15:03    

Y'a pas de namespace dessus ? Envoi une fois ta XSL

Reply

Sujets relatifs:

Leave a Replay

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