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]compteur


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 882
    Par défaut [xsl]compteur
    bonjour

    afin de styliser des elements html via javascript j'ai besoin de creer des id a des balises. ces balises sont produites dans une boucle for-each
    pour creer ces id j'ai besoin de recuperer l'iteration en cours, a l'aide d'un compteur
    j'ai fait un compteur mais il ne semble pas fonctionner il affiche NaN et je ne sais pas comment l'incrermenter sans afficher le resultat

    voici mon code
    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
    <xsl:for-each select='method'>
                        <xsl:variable name="compteur">
                        </xsl:variable>
                        <tr>
                            <td><xsl:value-of select='visibility'/></td>
                            <td><xsl:value-of select='name'/></td>
                            <td><xsl:value-of select='return'/></td>
                        </tr>
                        <xsl:if test = "count(parameter) > 0">
                        <tr><td colspan="4">parametres</td></tr>
                        </xsl:if>
                        <xsl:for-each select='parameter'>
                            <tr>
                                <td colspan="3"><xsl:value-of select='name'/></td>
                            </tr>
                        </xsl:for-each>
                        <tr><td colspan="4">
                        <a herf="#">
                            <!--<xsl:attribute name="onclick">
                            <xsl:value-of select='concat("display('code",$compteur,"');")' />
                            </xsl:attribute>-->
                         </a></td></tr>
                        <tr class='separator'>
                            <td colspan="4" class="code">
                            <xsl:attribute name="id">
                                <xsl:value-of select="concat('code',$compteur)" />
                            </xsl:attribute>
                                <xsl:value-of select='code' disable-output-escaping ="yes"/>
                            </td>
                        </tr>
                    </xsl:for-each>
    et les ligne entre commentaire ne fonctionne pas

    merci

  2. #2
    Membre Expert
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Par défaut
    Salut,

    Pour faire simple une variable ne peux être intancier qu'un seul fois (je sais c'est bizzare mais c'est comme ca en xml).

    Donc il faut trouver un autre moyen: ce moyen est position() qui te retourne la position de ton noeud (utilisable dans un for-each) par rapport aux autres.

    il s'utilise par exemple comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:value-of select="position()"/>
    ++

    Thierry

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 882
    Par défaut
    merci , ca fonstionne presque
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        <td colspan="4" class="code">
                            <xsl:attribute name="id">
                                code<xsl:value-of select="position()"/>
                            </xsl:attribute>
                                <xsl:value-of select='code' disable-output-escaping ="yes"/>
                            </td>
    mais le code sortie est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <td colspan="4" class="code" id="
    							code2"><code>...
    j'ai bien une numeroation mais je vois pas d'ou sort cette chaine:

  4. #4
    Expert confirmé
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Par défaut
    Bonjour,

    c'est la concaténation de toutes les tabulations, retour-chariots, espaces, etc... compris dans le xsl:attribute. Pour signaler au processeur XSLT que tu ne veux que 'code' et pas tous les espaces qui l'entourent, utilise xsl:text :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <xsl:attribute name="id">
      <xsl:text>code</xsl:text><xsl:value-of select="position()"/>
    </xsl:attribute>
    Ou encore :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <xsl:attribute name="id">
      <xsl:value-of select="concat('code', position())"/>
    </xsl:attribute>
    Sinon, pour la numérotation, il vaut mieux utiliser xsl:number...
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 882
    Par défaut
    merci

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

Discussions similaires

  1. Compteur XSL ou Velocity
    Par Katachana dans le forum APIs
    Réponses: 11
    Dernier message: 19/06/2007, 12h12
  2. Compteur XSL...Portée des variables limitée
    Par lanfeustdetroy dans le forum XSL/XSLT/XPATH
    Réponses: 11
    Dernier message: 03/06/2005, 14h12
  3. [XSL]compteur
    Par Slein dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 04/05/2005, 14h18
  4. [XSL] Debutant : créer un compteur.
    Par castaka dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 21/04/2005, 15h13
  5. [XSL FO] Compteur a partir de 2
    Par Hugo001 dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 30/06/2004, 11h39

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