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] boucle et répétition


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 56
    Points : 28
    Points
    28
    Par défaut [XSL] boucle et répétition
    Bonjour,
    J'ai un fichier xml de ce type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <A>
       <B>
          <C></C>
          <D></D>
       </B>
       <B>
          <C></C>
          <D></D>
       </B>
       <B>
    ...
    </A>
    et voici mon fichier 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
    22
    23
    24
    25
    26
    27
    <window>
     
    <hbox>
     
    <xsl:for-each select="fmp:ROW"> 
       <groupbox>
     
          <caption>
             <xsl:attribute name="label">
                <xsl:text>Type de lots</xsl:text>
             </xsl:attribute>
          </caption>
     
          <listbox>
             <listitem>
                <xsl:attribute name="label">
                   <xsl:value-of select="fmp:TLS_ID_NomTLA1"/>
                </xsl:attribute>
             </listitem>
          </listbox>
     
       </groupbox>
    </xsl:for-each> 
     
    </hbox>
     
    </window>
    ce qui donne :



    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
    <window>
      <hbox flex="0">
        <groupbox flex="1">
          <caption label="Type de lots" style="background-color:yellow"/>
          <listbox row="3">
            <listitem label="Accès aux bandes-annonces haute définition"/>
          </listbox>
        </groupbox>
     
        <groupbox flex="1">
          <caption label="Type de lots" style="background-color:yellow"/>
            <listbox row="3">
              <listitem label="Vidéo de la bande-annonce haute définition"/>
              <listitem label="date"/>
            </listbox>
        </groupbox>
      </hbox>
    </window>
    Maintenant j'aimerais qu'à partir de la 4eme groupbox, il me créé un fichier de ce genre :

    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
     
    <window>
      <hbox flex="0">
        <groupbox flex="1">
        </groupbox>
     
        <groupbox flex="1">
        </groupbox>
     
        <groupbox flex="1">
        </groupbox>
     
        <groupbox flex="1">
        </groupbox>
      </hbox>
     
      <hbox flex="0">
        <groupbox flex="1">
        </groupbox>
     
        <groupbox flex="1">
        </groupbox>
     
        <groupbox flex="1">
        </groupbox>
     
        <groupbox flex="1">
        </groupbox>
      </hbox>
    </window>
    C'est à dire qu'après un ensemble de 4 groupbox, il encadre d'un <hbox>

    Je vois pas comment faire.
    Merci de votre aide.

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 56
    Points : 28
    Points
    28
    Par défaut
    J'ai essayé ça :

    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
     
    <window>
     
    <xsl:for-each select="fmp:ROW">
    <xsl:if test="position() mod 4 = 0">
    <hbox>
    </xsl:if>
       <groupbox>
     
          <listbox>
             <xsl:attribute name="row">
                <xsl:text>3</xsl:text>
             </xsl:attribute>
             <listitem>
                <xsl:attribute name="label">
                   <xsl:value-of select="fmp:TLS_ID_NomTLA1"/>
                </xsl:attribute>
             </listitem>
     
          </listbox>
       </groupbox>
    <xsl:if test="position() mod 4 = 0">
    </hbox>
    </xsl:if>
    </xsl:for-each> 
     
    </window>
    </xsl:template> 
    </xsl:stylesheet>

  3. #3
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Points : 10 927
    Points
    10 927
    Par défaut
    en jouant sur les positions une idee

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <r>
    <a>1</a>
    <a>11</a>
    <a>111</a>
    <a>1111</a>
    <a>2</a>
    <a>22</a>
    <a>222</a>
    <a>2222</a>
    </r>
    Idee "bidouille" contenue dans le post it "truc et astuces"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    ....
    <apply-templates select="//a" />
     
    <template match="a" mode="groupe">
     <xsl:if test="position() mod 4=1"> 
             <xsl:text disable-output-escaping="yes">&lt;g&gt;</xsl:text> 
          </xsl:if> 
    <solo><xsl:value-of select="."/></solo>
              <xsl:if test="position() mod 4=0  or position()=last()"> 
             <xsl:text disable-output-escaping="yes">&lt;/g&gt;</xsl:text> 
          </xsl:if> 
    </template >
     
    .....

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 56
    Points : 28
    Points
    28
    Par défaut
    là, j'avoue ne pas comprendre ...

  5. #5
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Points : 10 927
    Points
    10 927
    Par défaut
    ca te donnera un resultat
    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
    ...
     
    <g>
    <solo>1</solo>
    <solo>11</solo>
    <solo>111</solo>
    <solo>1111</solo>
    </g>
    <g>
    <solo>2</solo>
    <solo>22</solo>
    <solo>222</solo>
    <solo>2222</solo>
    </g>
    ....
    C'est bien ce type de resultat que tu cherches ? Comme ton exemple xml ne correspond pas a ton xsl difficile de repondre plus precisemment

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 56
    Points : 28
    Points
    28
    Par défaut
    oui, c'est exactement ça
    mais je ne comprends pas l'histoire du :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:text disable-output-escaping="yes">&lt;g&gt;</xsl:text>

  7. #7
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Points : 10 927
    Points
    10 927
    Par défaut
    cela perùet de tricher au niveau des balises ouvrantes et fermantes

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 56
    Points : 28
    Points
    28
    Par défaut
    mais ce script ne boucle pas, non ?
    Si oui, j'y comprends plus rien

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 56
    Points : 28
    Points
    28
    Par défaut
    C'est bon, c'est réglé, j'ai réussi

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

Discussions similaires

  1. [XSL] Boucle infinie dû à une utilisation de "contains"
    Par nicolas.pied dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 25/09/2009, 10h01
  2. problème boucle de répétition
    Par pascb423 dans le forum VB.NET
    Réponses: 5
    Dernier message: 29/06/2009, 22h32
  3. Réponses: 5
    Dernier message: 14/05/2008, 20h21
  4. [XSL] Accès à un noeud dans une boucle
    Par Trin dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 15/11/2005, 14h32
  5. [XSL]boucle imbriquée avec condition
    Par kor dans le forum XSL/XSLT/XPATH
    Réponses: 10
    Dernier message: 11/01/2005, 14h19

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