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 :

Compteurs dans des boucles


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre régulier Avatar de yaya_la_rafale
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 92
    Points : 70
    Points
    70
    Par défaut Compteurs dans des boucles
    Bonjour à tous,
    j'utilise XSLT au sein d'IBM Data Explorer... beaucoup de fonctionnalités ne me sont pas permises. (groupby/key etc etc).. j'avais bien un code moins ridicule que celui qui suit, mais inutile de s'enteter parfois.

    ma problematique, un fichier XML avec des documents de type differents. Je voudrais prendre les 3 premiers documents uniquement de chaque type.
    donc qque chose comme
    TYPE A: 3 documents MAX
    TYPE B: 3 documents MAX etc..
    Comment puis je implementer un compteur dans chacune de mes boucles. svp

    mon document a cette forme
    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
    <?xml version="1.0" encoding="UTF-8"?>
    <vce>
    	<document>
    		<content name="thevalue">item11</content>
    		<content name="myType">typeA</content> 
    	</document>
    	<document>
    		<content name="thevalue">item12</content>
    		<content name="myType">typeC</content> 
    	</document>
    	<document>
    		<content name="thevalue">item13</content>
    		<content name="myType">typeC</content> 
    	</document>
    	<document>
    		<content name="thevalue">item14</content>
    		<content name="myType">typeC</content> 
    	</document>
    	<document>
    		<content name="thevalue">item15</content>
    		<content name="myType">typeC</content> 
    		<document>
    		<content name="thevalue">item16</content>
    		<content name="myType">typeC</content> 
    	</document>
    	</document>
    	<document>
    		<content name="thevalue">item2</content>
    		<content name="myType">typeA</content> 
    	</document>
    	<document>
    		<content name="thevalue">item3</content>
    		<content name="myType">typeB</content> 
    	</document>
    	<document>
    		<content name="thevalue">item4</content>
    		<content name="myType">typeA</content> 
    	</document>
    	<document>
    		<content name="thevalue">item5</content>
    		<content name="myType">typeB</content> 
    	</document>
    	<document>
    		<content name="thevalue">item6</content>
    		<content name="myType">typeB</content> 
    	</document>
    	<document>
    		<content name="thevalue">item7</content>
    		<content name="myType">typeA</content> 
    	</document>
    </vce>
    et mon vilain code auquel je voudrais rajouter un comptuer est
    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
     
    <?xml version="1.0"?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    <xsl:template match="/vce">
     
      <xsl:text>TYPE A</xsl:text>:
        <xsl:for-each select="document">
          <xsl:if test="(  (content[@name='myType']='typeA') and (un compteur de type A)  " >position:<xsl:value-of select="position()" />:
    			<xsl:value-of select="content[@name='thevalue']" />
          </xsl:if>
        </xsl:for-each>
     
     
      <xsl:text>TYPE B</xsl:text>:
        <xsl:for-each select="document">
          <xsl:if test="(  (content[@name='myType']='typeB') and (un compteur de type B)  " >
    			position:<xsl:value-of select="position()" />:
    			<xsl:value-of select="content[@name='thevalue']" />
          </xsl:if>
        </xsl:for-each>
     
     
      <xsl:text>TYPE C</xsl:text>:
        <xsl:for-each select="document">
         <xsl:if test="(  (content[@name='myType']='typeC') and (un compteur de type C)  " >
    			position:<xsl:value-of select="position()" />:
    			<xsl:value-of select="content[@name='thevalue']" />
          </xsl:if>
        </xsl:for-each>
     
    </xsl:template>
    </xsl:stylesheet>

    merci de votre aide

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Hello,

    Un compteur est impossible, on ne peut pas changer la valeur d'une variable en XSLT.

    Par contre il n'y en a pas besoin :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:for-each select="document[content[@name='myType']='unType'][position() &lt; 4]">
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre régulier Avatar de yaya_la_rafale
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 92
    Points : 70
    Points
    70
    Par défaut
    Merci mille fois thelvin! voila la solution est là ! c'est juste parfait

    ( qd je passe à la tonne de code que j'ai écoulé pour un truc si simple au final !.. )
    merci encore

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

Discussions similaires

  1. [XL-2003] Positionnement de plusieurs If dans des boucles imbriquées
    Par kokoVBA dans le forum Macros et VBA Excel
    Réponses: 21
    Dernier message: 30/07/2009, 15h41
  2. Compteur dans une boucle for
    Par lohot dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 28/03/2008, 12h19
  3. Problème de logique dans des boucles "If"
    Par bilou95 dans le forum Langage
    Réponses: 3
    Dernier message: 16/10/2007, 11h05
  4. Passage dans des boucles (1 - 2 fois)
    Par falco- dans le forum Langage
    Réponses: 5
    Dernier message: 07/09/2007, 16h16
  5. problème de syntaxe dans des boucles imbriquées
    Par deglingo37 dans le forum Access
    Réponses: 2
    Dernier message: 01/09/2006, 14h46

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