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

XSL/XSLT/XPATH XML Discussion :

[XSLT] Comment inclure une balise xsl dans une balise html


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre confirmé
    Homme Profil pro
    Fondateur
    Inscrit en
    Octobre 2002
    Messages
    445
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Fondateur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2002
    Messages : 445
    Points : 503
    Points
    503
    Par défaut [XSLT] Comment inclure une balise xsl dans une balise html
    Bonjour,

    Voici une partie de mon code XSL actuel qui fonctionne normalement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    <xsl:for-each select="bouton">
    				<td>
     
    				<xsl:choose>
    					<xsl:when test=" @type = 'simple' "><input type="button" name="{name}" value="{value}" onClick="javascript: touche('{value}');" /></xsl:when>
    					<xsl:when test=" @type = 'resultat' "><input type="button" name="{name}" value="{value}" onClick="javascript:resultat('{value}');" /></xsl:when>
    					<xsl:when test=" @type = 'raz' "><input type="button" name="{name}" value="{value}" onClick="javascript:raz();" /></xsl:when>
         				 </xsl:choose>
     
    				</td>
    			</xsl:for-each>
    Ici dans les 3 cas du xsl:choose, on a la même ligne comme résultat mis à part la partie de l'attribut onClick.

    J'aurais aimé pouvoir faire quelque chose pour factoriser tout ça et obtenir un code de ce genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <xsl:for-each select="bouton">
    				<td>
    				<input type="button" name="{name}" value="{value}" onClick="javascript : {
    				<xsl:choose>
    					<xsl:when test=" @type = 'simple' "> touche('{value}')</xsl:when>
    					<xsl:when test=" @type = 'resultat' "> resultat('{value}')</xsl:when>
    					<xsl:when test=" @type = 'raz' "> onClick="javascript:raz()</xsl:when>
         				 </xsl:choose>
         				 };"/>
    				</td>
    			</xsl:for-each>
    Ainsi, je fais le test dans le balise onClick la seule qui varie et selon la valeur de l'attribut type je place dans la balise quelque chose de différent.

    Ceci est il possible en XSL (j'ai l'habitude de faire ça en PHP par exemple mais là en XSL je sais pas du tout si c'est possible) ?
    Et si oui comment faut il procéder ?

    Merci d'avance.
    Développeur Java / Android.
    The Truth About Bitcoin : https://www.the-truth-about-bitcoin.com/
    In Bitcoin We Trust : https://inbitcoinwetrust.substack.com
    Retrouvez mes Apps Android : https://play.google.com/store/apps/d...01024188312025
    Tout sur le Bitcoin, la Blockchain et les Altcoins : https://www.toutsurlebitcoin.fr
    Devenez une meilleure de vous-même jour après jour : https://www.jedeviensmeilleur.fr

  2. #2
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Points : 10 927
    Points
    10 927
    Par défaut
    Il peut y avoir des fautes syntaxes
    <xsl:for-each select="bouton">
    <td>
    <input type="button" name="{name}" value="{value}" />
    <xsl:attribute name="onClick">javascript :<xsl:choose>
    <xsl:when test=" @type = 'simple' "> touche('<xsl:value-of select="value"/>')</xsl:when>
    <xsl:when test=" @type = 'resultat' "> resultat('<xsl:value-of select="value"/>')</xsl:when>
    <xsl:when test=" @type = 'raz' "> raz()</xsl:when>
    </xsl:choose></xsl:attribute>
    </td>
    </xsl:for-each>

  3. #3
    Membre confirmé
    Homme Profil pro
    Fondateur
    Inscrit en
    Octobre 2002
    Messages
    445
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Fondateur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2002
    Messages : 445
    Points : 503
    Points
    503
    Par défaut
    Ca ne marche pas comme ça, j'ai l'impression que ça vient du fait que la balise input est une balise simple. J'ai vu sur le net des solutions utilisant xsl:attribute comme ça mais la balise html dans laquelle on mettait ça avait une balise fermante. Mais peut je me trompe.

    J'ai essayé en mettant tout sous forme de xsl:attribute et en utilisant xsl:element pour définir la balise input.
    Ca donne ça :

    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
    16
    17
     
    <xsl:for-each select="bouton">
    <td>
     
    <xsl:element name="input">
    <xsl:attribute name="onClick">javascript :<xsl:choose>
    <xsl:when test=" @type = 'simple' "> touche('<xsl:value-of select="value"/>');</xsl:when>
    <xsl:when test=" @type = 'resultat' "> resultat('<xsl:value-of select="value"/>');</xsl:when>
    <xsl:when test=" @type = 'raz' "> raz();</xsl:when>
    </xsl:choose></xsl:attribute>
    <xsl:attribute name="value"><xsl:value-of select="value" /></xsl:attribute>
    <xsl:attribute name="value"><xsl:value-of select="value" /></xsl:attribute>
    <xsl:attribute name="type">button</xsl:attribute>
    </xsl:element>
     
    				</td>
    			</xsl:for-each>

    Là ça fonctionne bien . Cependant, si la version précédente que tu as marqué peut fonctionner après une éventuelle correction, je suis preneur.

    Merci de ton aide déjà.
    Développeur Java / Android.
    The Truth About Bitcoin : https://www.the-truth-about-bitcoin.com/
    In Bitcoin We Trust : https://inbitcoinwetrust.substack.com
    Retrouvez mes Apps Android : https://play.google.com/store/apps/d...01024188312025
    Tout sur le Bitcoin, la Blockchain et les Altcoins : https://www.toutsurlebitcoin.fr
    Devenez une meilleure de vous-même jour après jour : https://www.jedeviensmeilleur.fr

  4. #4
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Points : 10 927
    Points
    10 927
    Par défaut
    je l'avais oublié celle la
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     <xsl:for-each select="bouton">
    <td>
    <input type="button" name="{name}" value="{value}" >
    <xsl:attribute name="onClick">javascript :<xsl:choose>
    <xsl:when test=" @type = 'simple' "> touche('<xsl:value-of select="value"/>')</xsl:when>
    <xsl:when test=" @type = 'resultat' "> resultat('<xsl:value-of select="value"/>')</xsl:when>
    <xsl:when test=" @type = 'raz' "> raz()</xsl:when>
    </xsl:choose></xsl:attribute>
    </input>
    </td>
     
    </xsl:for-each>
    mais tu peux avoir des pb de sauts de lignes (le principe reste valable)

Discussions similaires

  1. Comment transformer une balise xml dans une requete xsl:for-each
    Par Max1000p dans le forum XML/XSL et SOAP
    Réponses: 8
    Dernier message: 07/06/2012, 09h46
  2. Réponses: 8
    Dernier message: 26/03/2010, 08h16
  3. Réponses: 6
    Dernier message: 13/11/2009, 16h06
  4. [XSLT][JSP]Interpréter une commande XSL dans une JSP
    Par anas.eh dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 27/10/2008, 09h34
  5. [XSLT]passer une variable js dans une instruction xsl
    Par ounours dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 12/04/2007, 18h39

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