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 :

Pb de key et de cumul


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Pb de key et de cumul
    J'ai refait mon message en plus lisible...
    Je me demande, s'il ne faudrait pas modifier le use de la key en ajoutant un truc ressemblant à ancestor::NameRM.
    Si quelqu'un a une petite idée, ça serait sympatoche (car je patauge un peu..)
    Merci!!

    Bonjour,

    J'ai besoin d'un petit coup de pouce pour des histoires de cumul, s'il vous plaît..

    J'ai ce fichier xml :
    J'ai besoin de sommer les Val par Mat distincte pour chaque RM.

    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
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    <xml>
    	<Extraction>
    		<ListeRM>
    			<RM>
    				<NameRM>RM1</NameRM>
    				<Cbs>
    					<Cb>RM1-C1</Cb>
    					<ListeP>
    						<Pt>
    							<Val>20</Val>
    							<Mat>3Y</Mat>
    						</Pt>
    					</ListeP>
    				</Cbs>
    				<Cbs>
    					<Cb>RM1-C2</Cb>
    					<ListeP>
    						<Pt>
    							<Val>35</Val>
    							<Mat>4Y</Mat>
    						</Pt>
    						<Pt>
    							<Val>40</Val>
    							<Mat>3Y</Mat>
    						</Pt>
    					</ListeP>
    				</Cbs>
    			</RM>
    			<RM>
    				<NameRM>RM2</NameRM>
    				<Cbs>
    					<Cb>RM2-C1</Cb>
    					<ListeP>
    						<Pt>
    							<Val>15</Val>
    							<Mat>2Y</Mat>
    						</Pt>
    						<Pt>
    							<Val>20</Val>
    							<Mat>3Y</Mat>
    						</Pt>
    					</ListeP>
    				</Cbs>
    				<Cbs>
    					<Cb>RM2-C2</Cb>
    					<ListeP>
    						<Pt>
    							<Val>35</Val>
    							<Mat>4Y</Mat>
    						</Pt>
    						<Pt>
    							<Val>50</Val>
    							<Mat>3Y</Mat>
    						</Pt>
    					</ListeP>
    				</Cbs>
    			</RM>
    		</ListeRM>
    	</Extraction>
    </xml>



    J'ai cette feuille xsl :

    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
    <xsl:key name="key-mat" match="Pt" use=".//Mat"/>
    	<xsl:template match="/xml/Extraction">
    		<xsl:for-each select="ListeRM/RM">
    			<xsl:variable name="NameRM" select="normalize-space(NameRM)"/>
    			<Nom>
    				<xsl:value-of select="$NameRM"/>
    			</Nom>
    			<xsl:call-template name="fct"/>
    		</xsl:for-each>
    	</xsl:template>
    	<!-- ============================ -->
    	<xsl:template name="fct">
    		<xsl:for-each select="Cbs/ListeP/Pt[generate-id(.) =generate-id(key('key-mat',.//Mat)[1] )]">
    			<Mat>
    				<xsl:value-of select=".//Mat"/>
    			</Mat>
    			<Cumul>
    				<xsl:value-of select="sum(//Pt[.//Mat=current()/.//Mat]/Val)"/>
    			</Cumul>
    		</xsl:for-each>
    	</xsl:template>


    J'arrive à ce résultat : En fait, ça fait abstraction du regroupement par RM :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <Nom>RM1</Nom>
     <Mat>3Y</Mat><Cumul>130</Cumul>
     <Mat>4Y</Mat><Cumul>70</Cumul>
     
     <Nom>RM2</Nom>
     <Mat>2Y</Mat><Cumul>15</Cumul>


    Alors que je voudrai arriver à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <Nom>RM1</Nom>
     <Mat>3Y</Mat><Cumul>60</Cumul>
     <Mat>4Y</Mat><Cumul>35</Cumul>
     
     <Nom>RM2</Nom>
     <Mat>2Y</Mat><Cumul>15</Cumul>
     <Mat>3Y</Mat><Cumul>70</Cumul>
     <Mat>4Y</Mat><Cumul>45</Cumul>
    Je ne pense pas en être très loin. Il doit y avoir un problème au niveau de la définition de la key.
    Ma feuille fonctionne lorsque je n'ai qu'un RM. Dés que j'ai plusieurs RM, et bien je les prends tout simplement pas en compte!

    Par avance, merci beaucoup pour votre aide.

    Cha

  2. #2
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    J'avance un petit peu, mais c'est toujours pas ça...

    Pour la somme, je parcourrais tout le doc, mais il faut :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:value-of select="sum(../../../Cbs/ListeP/Pt[.//Mat=current()/.//Mat]/Val)"/>
    Ce qui donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <Nom>RM1</Nom>
     <Mat>3Y</Mat><Cumul>60</Cumul>
     <Mat>4Y</Mat><Cumul>35</Cumul>
     
     <Nom>RM2</Nom>
     <Mat>2Y</Mat><Cumul>15</Cumul>
    Mais c'est toujours pas ça....

    Une petite idée, svp?

Discussions similaires

  1. BDD, r-a-z index et indice primary key ?
    Par lord_paco dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 11/07/2003, 10h24
  2. [debutant] les processus se cumulent
    Par glurps dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 17/06/2003, 10h24
  3. [Foreign Key] Besoin d'explication.
    Par Andry dans le forum Débuter
    Réponses: 4
    Dernier message: 28/05/2003, 11h34
  4. Déclenchement Programme sur Virtual Key
    Par Tom-G dans le forum API, COM et SDKs
    Réponses: 9
    Dernier message: 09/05/2003, 12h58
  5. Virtual-key code
    Par lyrau dans le forum Windows
    Réponses: 2
    Dernier message: 29/03/2003, 19h22

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