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] problème boucle


Sujet :

XSL/XSLT/XPATH XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2005
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 22
    Par défaut [XSL] problème boucle
    Bonjour,

    J'ai un fichier XML comme ceci :

    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
       <choice name="CHOICE1" select="Text">13</choice>
       <table name="TABLE1">
          <data>
             <tr>
                <td>1.0</td>
                <td>1111</td>
             </tr>
             <tr>
                <td>2.0</td>
                <td>2222</td>
             </tr>
          </data>
       </table>
       <choice name="CHOICE1" select="Text">14</choice>
       <table name="TABLE1">
          <data>
             <tr>
                <td>1.0</td>
                <td>3333</td>
             </tr>
             <tr>
                <td>2.0</td>
                <td>4444</td>
             </tr>
          </data>
       </table>
       etc...
    J'aimerai le traiter via un fichier XSL, mais j'ai un problème.
    Je fais comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <xsl:for-each select="$c/table[@name='TABLE1']">
       <SIGMA_UNITE>
          <xsl:variable name="iSol"   select="string($c/choice[@name='CHOICE1'])" />
          <NUM_MECA><xsl:value-of select="$iSol"/></NUM_MECA>
          <xsl:for-each select="./data/tr">
             <xsl:variable name="S_RR" select="td[1]" />
             <xsl:variable name="S_TT" select="td[2]" />
             <SIGMA_MECA>
                <S_RR><xsl:value-of select="$S_RR"/></S_RR>
                <S_TT><xsl:value-of select="$S_TT"/></S_TT>
             </SIGMA_MECA>
          </xsl:for-each>
       </SIGMA_UNITE>
    </xsl:for-each>
    Et j'obtiens :

    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
     
    <SIGMA_UNITE>
          <NUM_MECA>13</NUM_MECA>
          <SIGMA_MECA>
             <S_RR>1.0</S_RR>
             <S_TT>1111</S_TT>
          </SIGMA_MECA>
          <SIGMA_MECA>
             <S_RR>2.0</S_RR>
             <S_TT>2222</S_TT>
          </SIGMA_MECA>
    </SIGMA_UNITE>
     
    <SIGMA_UNITE>
          <NUM_MECA>13</NUM_MECA>
          <SIGMA_MECA>
             <S_RR>1.0</S_RR>
             <S_TT>3333</S_TT>
          </SIGMA_MECA>
          <SIGMA_MECA>
          <S_RR>2.0</S_RR>
             <S_TT>4444</S_TT>
             </SIGMA_MECA>
    </SIGMA_UNITE>

    Bon, je vais pouvoir commencer ma question !
    Dans le resultat, j'obtiens bien les différents tableaux, mais j'obtiens toujours la valeur du premier choice. Il ne va pas chercher le suivant.
    Ca parait plausible, puisque je boucle sur les balise table, mais comment faire pour boucler en même temps sur les balises choice ?

  2. #2
    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,

    il faut sélectionner le premier choice (avec un attribut name égal à 'CHOICE1') qui précède le noeud courant (le table) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:variable name="iSol"   select="preceding-sibling::choice[@name='CHOICE1'][1]" />
    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

  3. #3
    Membre averti
    Inscrit en
    Mai 2005
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 22
    Par défaut
    yes, nickel ça marche
    Thanks !

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

Discussions similaires

  1. [XSL]problème avec <xsl:when>
    Par Devil666 dans le forum XSL/XSLT/XPATH
    Réponses: 12
    Dernier message: 27/05/2005, 16h54
  2. [html][xsl]Problème valeur attribut html
    Par beho dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 16/04/2005, 13h37
  3. [XSL] problème de syntaxe
    Par Flushovsky dans le forum XSL/XSLT/XPATH
    Réponses: 9
    Dernier message: 14/03/2005, 22h06
  4. [XSL] Problème d'incrémentation
    Par OXyGN dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 28/01/2005, 12h48
  5. [XSL]Problème de portée des variables
    Par djulesp dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 17/09/2004, 10h34

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