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 �clair�
    Homme Profil pro
    Fondateur
    Inscrit en
    Octobre 2002
    Messages
    445
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    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
    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.

  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 : 49
    Localisation : France

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    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 �clair�
    Homme Profil pro
    Fondateur
    Inscrit en
    Octobre 2002
    Messages
    445
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    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
    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�.

  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 : 49
    Localisation : France

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    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