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 :

[XSL] Passage de paramètre avec php5


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre habitué

    Inscrit en
    Août 2008
    Messages
    177
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 177
    Points : 125
    Points
    125
    Par défaut [XSL] Passage de paramètre avec php5
    Bonjour à tous,

    j'essaye de passer un paramètre à ma feuille XSL, mais celle-ci, au lieu de m'afficher le contenu de la balise, m'affiche le contenu du paramètre en question (ici NOM).

    La feuille XSL :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
     
    <xsl:output method="html" encoding="iso-8859-1"/>
     
    <xsl:param name="Attr" />
     
    <xsl:template match="COMPTES/COMPTE">
     <xsl:value-of select="$Attr"/> 
    </xsl:template>
     
    </xsl:stylesheet>
    Le php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    $doc = new DOMDocument();
    $xsl = new XSLTProcessor();
     
    $doc->load('compte_dyn.xsl');
    $xsl->importStyleSheet($doc);
    $xsl->setParameter('Attr','Attr','NOM');
     
    $doc->load('Comptes.xml');
    echo $xsl->transformToXML($doc);
    ?>

  2. #2
    Membre habitué

    Inscrit en
    Août 2008
    Messages
    177
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 177
    Points : 125
    Points
    125
    Par défaut
    J'ai trouvé la réponse, apparemment si j'ai bien comprit les compilateurs XSLT pour la plupart évaluent les paramètres ou variables comme des chaînes de caractère plutôt que des chemins XPath pour des raisons de performances...

    Il faut donc importer une fonction d'évaluation donnée par des extensions telles que EXSLT ou Saxon.

    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
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:dyn="http://exslt.org/dynamic"
    extension-element-prefixes="dyn">
    
    <xsl:output method="html" encoding="iso-8859-1"/>
     
    <xsl:param name="Attr" />
     
    <xsl:template match="COMPTES/COMPTE">
     <xsl:value-of select="dyn:evaluate($Attr)"/> 
    </xsl:template>
     
    </xsl:stylesheet>
    Mais pourquoi n'as t-on pas rajouter l'équivalent en XSLT ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [wsadmin] Passage de paramètre avec jacl ?
    Par Bourbaky dans le forum Websphere
    Réponses: 4
    Dernier message: 30/11/2007, 14h24
  2. Passage de paramètres avec Redirect
    Par abir84 dans le forum Ruby on Rails
    Réponses: 4
    Dernier message: 24/09/2007, 10h51
  3. Passage de paramètres avec DLL Delphi
    Par GroovyBaby dans le forum C#
    Réponses: 2
    Dernier message: 08/03/2007, 14h51
  4. Passage de paramètre avec POST
    Par boulette85 dans le forum Langage
    Réponses: 4
    Dernier message: 28/02/2007, 20h59
  5. [XSL] Passage de paramètres à un template
    Par pantin dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 27/06/2003, 13h28

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