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 :

[XSL] - Comment intérpréter du code JScript


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre régulier Avatar de luimême
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 176
    Points : 121
    Points
    121
    Par défaut [XSL] - Comment intérpréter du code JScript
    Comment à partir du code JScript sortir du résultat html
    voici un exemple de valeur que j'ai <MacroTache op='DET,CLO'>

    j'ai en résultat du code html non interprété.

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
     
    <msxsl:script language="JScript" implements-prefix="L4">
     
    function VerifieOperation( valeur : String ) : String
    {		
        var resultat = new String( "" ) ;		
        if( valeur != '' )
        {
          var tab = valeur.split( ',' )
          for( var operation in tab )
          {
              switch	( tab[operation] )
            {
    	case 'CLO' : 
    	    resultat += '\n' + '<td>' ;
    	    resultat += '<input type="image" name="_ctl4" title="Clôture de la Macro Tache" src="_images/Cloture.png" border="0" />' ;
    						resultat += '</td>' ;
    	break ; 
     
    	case 'DET' :
    	resultat += '\n' + '<td>' ;
    	resultat += '<input type="image" name="_ctl4" title="Détails pour la Macro Tache" src="_images/Detail.png" border="0" />' ;
    						resultat += '</td>' ;
    	break ;
    	default : 
    	break ;
            }
         }
      }
     
    return resultat ;
    }
     
    </msxsl:script>
     
    <xsl:template match="/">
    <table class="schema" border="0">
        <xsl:for-each select="Vague">
           <tr class="niv2">
    	<td align="Left" colspan="2">
                           <xsl:value-of select="Nom"/></td>
    	<td align="Center" colspan="1">
                             <xsl:value-of select="NbArticles"/></td>
    	<xsl:if test="@op">
    	    <xsl:value-of select="L4:VerifieOperation(@op)"/>		</xsl:if>
            </tr>
       </xsl:for-each>
    </table>
    </xsl:template>

  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 : 48
    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
    C'est une question ? une info ? Quel but ?

    En passant, si c'est une info:

    1)Ce n'est valable que pour msxml, donc non portable
    2) ce code est incomplet. Pour le faire fonctionner tu as oublié de mettre les infos les plus importantes se rapportant a xsl:stylesheet

  3. #3
    Membre régulier Avatar de luimême
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 176
    Points : 121
    Points
    121
    Par défaut
    C'est une question car
    Le résultat de cette transformation dans ma page web
    est :

    les lignes dans le xsl sont bien des balises html
    et
    les lignes générés à partir du JSCript ne sont pas
    interprétées,
    c'est du texte.

    Je ne sais pas comment m'en sortir pour faire ma page html.

  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 : 48
    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
    Montre le code html que tu veux obtenir en sortie en fonction de <MacroTache op='DET,CLO'>
    utiliser du javascript pour ecrire ici est une tres mauvaise idée, msxml a tendance a protégé automatiquement les caracteres < et >

  5. #5
    Membre expérimenté
    Avatar de zekey
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 036
    Points : 1 403
    Points
    1 403
    Par défaut
    Le code suivant charge et interprete dans le head principal tous les bout de scripts présents dans response.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    element.innerHTML = response;     			      	
    try{
       //detect all script tags to integrate their content to the head tag
       var l=element.getElementsByTagName('script').length
       for(var j=0;j<l;j++){
          var script = document.createElement('script');
          script.type = 'text/javascript';
          script.text = element.getElementsByTagName('script').item(j).text;		      document.getElementsByTagName('head')[0].appendChild(script); 		
       }	      		
    }catch(e){
       alert(e);
    }

  6. #6
    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 : 48
    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
    Si c'est la protection que je pense essaye simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <xsl:value-of select="L4:VerifieOperation(@op)" disable-output-escaping="yes"/>
    Si ca ne marche pas le plus simple est de recoder en xslt

  7. #7
    Membre régulier Avatar de luimême
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 176
    Points : 121
    Points
    121
    Par défaut
    j'ia un attribut op='' qui peut avoir comme valeur
    'DET' ou 'DET,CLO' ou 'DET,CLO,...'

    Voici le code que je veux obtenir si je trouve DET
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <td>
              <input type="image" name="_ctl4" title="Détails pour la Macro Tache" src="_images/Detail.png" border="0" />
    </td>
    Voici le code que je veux obtenir si je trouve DET
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <td>
            <input type="image" name="_ctl4" title="Clôture de la Macro Tache" src="_images/Cloture.png" border="0" />
    </td>
    Les deux code assemblées si je trouve DET et CLO ...

    ----------------

    ze_key
    Ce code je dois le placer où dans mon code ?

  8. #8
    Membre régulier Avatar de luimême
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 176
    Points : 121
    Points
    121
    Par défaut
    Citation Envoyé par Erwy
    Si c'est la protection que je pense essaye simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <xsl:value-of select="L4:VerifieOperation(@op)" disable-output-escaping="yes"/>
    Si ca ne marche pas le plus simple est de recoder en xslt
    J'ai essayé cela me donne le résultat. du texte brut sans les cellules.

  9. #9
    Membre expérimenté
    Avatar de zekey
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 036
    Points : 1 403
    Points
    1 403
    Par défaut
    n'importe ou dans une page conteneur.
    et tu chargera ta page dans le div.
    Mais en fait je n'y avais pas pensé mais comme ta page doit d'abord est transformé par le browser je ne sais pas si ca va marcher.

  10. #10
    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 : 48
    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 Re: [XSL] - Comment intérpréter du code JScript
    essaye:

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
     
     
    <xsl:template match="/">
    <table class="schema" border="0">
        <xsl:for-each select="Vague">
           <tr class="niv2">
    	<td align="Left" colspan="2">
                           <xsl:value-of select="Nom"/></td>
    	<td align="Center" colspan="1">
                             <xsl:value-of select="NbArticles"/></td>
    	<xsl:if test="@op">
    	  	<xsl:call-template name="cellule">
    					<xsl:with-param name="cell" select="@op"/>
    				</xsl:call-template>	</xsl:if>
            </tr>
       </xsl:for-each>
    </table>
    </xsl:template>
    	<xsl:template name="cellule">
    		<xsl:param name="cell"/>
    		<xsl:variable name="actuel" select="substring-before(',',$cell)"/>
    		<xsl:variable name="suivant" select="substring-after(',',$cell)"/>
    		<td>
    			<input type="image" name="_ctl4" border="0">
    				<xsl:choose >
    					<xsl:when test="'CLO'">
    						<xsl:attribute name="title">Clôture de la Macro Tache</xsl:attribute>
    						<xsl:attribute name="src">_images/Cloture.png</xsl:attribute>
    					</xsl:when>
    					<xsl:when test="'DEL'">
    						<xsl:attribute name="title">Détails pour la Macro Tache</xsl:attribute>
    						<xsl:attribute name="src">=_images/Detail.png</xsl:attribute>
    					</xsl:when>
    				</xsl:choose>
    			</input>
    			<xsl:if test="$suivant">
    				<xsl:call-template name="cellule">
    					<xsl:with-param name="cell" select="$suivant"/>
    				</xsl:call-template>
    			</xsl:if>
    		</td>
    	</xsl:template>
    ze_key>> ce code jscript est utilisé hors navigateur et document html et il n'apparait pas dans le resultat, je crains un hors sujet complet

  11. #11
    Membre expérimenté
    Avatar de zekey
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 036
    Points : 1 403
    Points
    1 403
    Par défaut
    Erwy: oui oui je me suis copieusement planté.

  12. #12
    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 : 48
    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
    erreurs dans mon code,cela devrait être mieux

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    <xsl:template name="cellule">
    		<xsl:param name="cell"/>
    		<xsl:variable name="actuel">
    			<xsl:choose>
    				<xsl:when test="not(contains($cell,','))">
    					<xsl:value-of select="string($cell)"/>
    				</xsl:when>
    				<xsl:otherwise>
    					<xsl:value-of select="substring-before(string($cell),',')"/>
    				</xsl:otherwise>
    			</xsl:choose>
    		</xsl:variable>
    		<xsl:variable name="suivant" select="substring-after(string($cell),',')"/>
    			<td>
    			<input type="image" name="_ctl4" border="0">
    				<xsl:choose>
    					<xsl:when test="$actuel='CLO'">
    						<xsl:attribute name="title">Clôture de la Macro Tache</xsl:attribute>
    						<xsl:attribute name="src">_images/Cloture.png</xsl:attribute>
    					</xsl:when>
    					<xsl:when test="$actuel='DET'">
    						<xsl:attribute name="title">Détails pour la Macro Tache</xsl:attribute>
    						<xsl:attribute name="src">=_images/Detail.png</xsl:attribute>
    					</xsl:when>
    					<xsl:otherwise>rien</xsl:otherwise>
    				</xsl:choose>
    			</input>
    			<xsl:if test="$suivant">
    				<xsl:call-template name="cellule">
    					<xsl:with-param name="cell" select="$suivant"/>
    				</xsl:call-template>
    			</xsl:if>
    		</td>
    	</xsl:template>

  13. #13
    Membre régulier Avatar de luimême
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 176
    Points : 121
    Points
    121
    Par défaut
    Merci, c cool, ça marche.

    Parcontre,

    <MacroTache op='CLO'> ok

    <MacroTache op='DET,CLO'>
    il n'affiche que le code correspondant à CLO
    alors qu'il devrait afficher les deux.

    Peut être que je devrais utiliser <xsl:if>

  14. #14
    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 : 48
    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
    encore une erreur, les greves me fatiguent
    derniere version que j'ai teste avec <MacroTache op='DET,CLO'> et qui marche

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    	<xsl:template name="cellule">
    		<xsl:param name="cell"/>
    		<xsl:variable name="actuel">
    			<xsl:choose>
    				<xsl:when test="not(contains($cell,','))">
    					<xsl:value-of select="string($cell)"/>
    				</xsl:when>
    				<xsl:otherwise>
    					<xsl:value-of select="substring-before(string($cell),',')"/>
    				</xsl:otherwise>
    			</xsl:choose>
    		</xsl:variable>
    		<xsl:variable name="suivant" select="substring-after(string($cell),',')"/>
    			<td>
    			<input type="image" name="_ctl4" border="0">
    				<xsl:choose>
    					<xsl:when test="$actuel='CLO'">
    						<xsl:attribute name="title">Clôture de la Macro Tache</xsl:attribute>
    						<xsl:attribute name="src">_images/Cloture.png</xsl:attribute>
    					</xsl:when>
    					<xsl:when test="$actuel='DET'">
    						<xsl:attribute name="title">Détails pour la Macro Tache</xsl:attribute>
    						<xsl:attribute name="src">=_images/Detail.png</xsl:attribute>
    					</xsl:when>
     
    				</xsl:choose>
    			</input>
    			</td>
    					<xsl:if test="$suivant">
    				<xsl:call-template name="cellule">
    					<xsl:with-param name="cell" select="$suivant"/>
    				</xsl:call-template>
    			</xsl:if>
    	</xsl:template>

  15. #15
    Membre régulier Avatar de luimême
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 176
    Points : 121
    Points
    121
    Par défaut
    Merci ..........

    ça marche.

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

Discussions similaires

  1. [XSL] Comment modifier la valeur d'une variable?
    Par sorcer1 dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 17/02/2010, 13h26
  2. [Hardware portable] Comment entrer un code Ascii?
    Par l.sage dans le forum Ordinateurs
    Réponses: 13
    Dernier message: 11/08/2005, 13h04
  3. [Juridique] Comment réutiliser le code source d'une classe ?
    Par mathieu dans le forum Général Java
    Réponses: 8
    Dernier message: 17/05/2004, 13h40
  4. [VB.NET] Comment ecrire du code entre <title>
    Par ykane dans le forum ASP.NET
    Réponses: 5
    Dernier message: 10/05/2004, 16h58
  5. [debutant] comment appliquer le code d'un bouton
    Par philippejuju dans le forum MFC
    Réponses: 3
    Dernier message: 20/01/2004, 10h56

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