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 :

incrementer une variable en xsl


Sujet :

XSL/XSLT/XPATH XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 14
    Par défaut incrementer une variable en xsl
    Bonjour,

    Je souhaite incrementer une variable en xsl, mais j'ai toujours une erreur.
    Je n'arrive meme pas a en declarer une et a l'afficher.


    J'ai essayer le code suivant dans la declaration:

    <xsl:variable name="valeur" select="0"/>

    et de l'afficher en faisant:

    <xsl:value-of select="valeur"/>

    mais j'ai aucun affichage. Si quelqu'un a une idée merci.

  2. #2
    Membre Expert Avatar de alain.couthures
    Profil pro
    Gérant
    Inscrit en
    Avril 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Par défaut
    Premièrement, il faut écrire <xsl:value-of select="$valeur"/> pour lire le contenu de la variable...

    De plus, une variable XSLT ne s'incrémente pas... puisque sa valeur est fixe !

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 14
    Par défaut
    pourtant j'ai vu des solutions tel que :

    <xsl:variable name="valeur" select="{$valeur+1}"/>

    mais ca ne marche pas t'as pas une idée stp?

  4. #4
    Membre émérite
    Profil pro
    Responsable Dev
    Inscrit en
    Décembre 2003
    Messages
    788
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable Dev

    Informations forums :
    Inscription : Décembre 2003
    Messages : 788
    Par défaut
    on peut incrmenter une variable en utilisant des fonctions mais cela est compiqué et non dans l'esprit "xsl"
    mais que souhaites tu faire avec ton incrémentale?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 14
    Par défaut
    Je souhaite compter le nombre de fois que je vais dans une boucle.

    voici le code:

    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:java="http://xml.apache.org/xslt/java" xmlnssl="http://www.w3.org/1999/XSL/Transform">

    <xsl:template match="/" name="formation">
    <xsl:param name="article" select=".//system-index-block[@name = 'media']/calling-page/system-page[@current = 'true']/system-data-structure[@definition-path = 'Formation/Article']"/>

    <xsl:param name="news" select=".//system-index-block[@name = 'media']/system-folder/system-folder/system-page/system-data-structure[@definition-path = 'Formation/News']"/>

    <xsl:param name="newsAbout">/formation/about/news/</xsl:param>
    <xsl:param name="newsProject">/formation/projects/news/</xsl:param>
    <xsl:variable name="valeur" select="0"/>


    <div>
    Title :
    <xsl:value-of select="$article/title"/>
    <br/>

    Paragraph1 :
    <xsl:value-of select="$article/paragraph1"/>
    <br/>

    Paragraph2 :
    <xsl:value-of select="$article/paragraph2"/>
    <br/>
    <img>
    <xsl:attribute name="src">
    <xsl:value-of select="$article/relatedImage/path"/>
    </xsl:attribute>
    <xsl:attribute name="alt">
    <xsl:value-of select="$article/relatedImage/name"/>
    </xsl:attribute>
    </img>

    <ul>
    <xsl:for-each select="$news">
    <xsl:sort data-type="text" select="./title"/>
    <xsl:variable name="temp" select="../path"/>
    <xsl:variable name="temp1" select="../name"/>
    <xsl:variable name="temp2" select="substring-before($temp,$temp1)"/>
    <xsl:if test="($newsAbout=$temp2) or ($newsProject=$temp2)">
    <xsl:variable name="valeur" select="$valeur+1"/>
    <li>
    <a>
    <xsl:attribute name="href">
    <xsl:value-of select="../path"/>
    </xsl:attribute>
    <xsl:value-of select="./title"/>
    </a>
    <br/>
    <xsl:value-of select="./description"/>
    </li>
    </xsl:if>
    </xsl:for-each>
    <xsl:value-of select="count($news)"/> / <xsl:value-of select="$valeur"/>
    </ul>
    </div>


    </xsl:template>
    </xsl:stylesheet>

  6. #6
    Nouveau membre du Club
    Inscrit en
    Mars 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2006
    Messages : 5
    Par défaut
    As tu essayé cette solution :

    <xsl:variable name="pm" select="count(//balise)"/>

Discussions similaires

  1. Incrementer une variable de type record
    Par yann87 dans le forum Langage
    Réponses: 5
    Dernier message: 19/01/2009, 15h57
  2. incrementer une variable
    Par kaking dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 20/06/2008, 08h43
  3. Incrementer une variable du type mysql_fetch_array
    Par furtif1 dans le forum Langage
    Réponses: 2
    Dernier message: 10/03/2007, 15h23
  4. [C#] Comment incrémenter une variable session ?
    Par Sup@Lou dans le forum ASP.NET
    Réponses: 5
    Dernier message: 14/05/2006, 18h24
  5. [XSLT] incrementer une variable
    Par Landolsi dans le forum XSL/XSLT/XPATH
    Réponses: 9
    Dernier message: 02/11/2005, 10h44

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