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 :

réaliser un cumul de valeurs


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 45
    Points : 29
    Points
    29
    Par défaut réaliser un cumul de valeurs
    salut,
    j'ai un fichier qui ressemble à ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <niveaux>
      <niveau id ="0">50</niveau>
      <niveau id ="1">20</niveau>
      <niveau id ="2">60</niveau>
      <niveau id ="6">40</niveau>
    </niveaux>
    et je voudrais en tirer une table triée en ordre décroissant selon la valeur de mes éléments niveau et avec le cumul de ces valeurs.
    sur l'exemple ca me donnerait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    2 - 60 - 60
    0 - 50 - 110
    6 - 40 - 150
    1 - 20 - 170
    pour le tri, pas de pb mais je vois pas trop comment faire pour faire le cumul. qqu'un pourrait me filer un coup de main?

  2. #2
    Membre éprouvé
    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
    Points : 1 063
    Points
    1 063
    Par défaut
    un bout de 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
     
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    	<xsl:output 
      		encoding="ISO-8859-15"
      		method="txt"/>
     
    	<xsl:template match="niveaux">
    		<xsl:for-each select="./niveau">
    			<xsl:variable name="a"><xsl:value-of select = "position()" /></xsl:variable>
    			<xsl:value-of select="sum(//niveau[position() &gt; $a])"/>
    			<xsl:text>    </xsl:text>
    		</xsl:for-each>
    	</xsl:template>
     
    </xsl:stylesheet>

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 45
    Points : 29
    Points
    29
    Par défaut
    merci pour le coup de main ca marche nickel.
    mais comment faire pour combiner ca avec le tri?
    puisque les noeuds correspondant à //niveau sont triés par ordre d'apparition dans le fichier et non comme je veux les afficher dans la table.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 45
    Points : 29
    Points
    29
    Par défaut
    finalement, voilà comment j'ai fait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <xsl:template match="niveaux">
      <xsl:for-each select="niveau">
        <xsl:sort select="." data-type="number" order="descending"/>
        <xsl:sort select="@id" data-type="number" order="ascending"/>
        <xsl:variable name="id" select="@id"/>
        <xsl:variable name="val" select="."/>
        <xsl:variable name="cumul" select="sum((//niveau[. &gt; $val) or ((. = $val) and (@id &lt; $id))])"/>
        <xsl:value-of select="$cumul"/>
      </xsl:for-each>
    </xsl:template>
    ca a l'air d'être bon.

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

Discussions similaires

  1. Cumul de valeurs
    Par PapyMouzot dans le forum Access
    Réponses: 2
    Dernier message: 06/12/2007, 11h08
  2. Cumul de valeur dans requete avec date
    Par OtObOx dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 02/07/2007, 17h07
  3. Cumuler des valeur indexées
    Par Tlemcen dans le forum Access
    Réponses: 25
    Dernier message: 20/02/2007, 23h29
  4. Cumuler des valeurs
    Par calafato dans le forum Access
    Réponses: 16
    Dernier message: 21/12/2004, 18h06
  5. [DBGrid avec Cumul]Comment réaliser un cumul dans un DBGrid
    Par Eric SAULNIER dans le forum Bases de données
    Réponses: 2
    Dernier message: 21/07/2004, 17h56

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