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 :

[XSLT] Boucles imbriquées


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre chevronné
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    2 050
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 2 050
    Points : 2 087
    Points
    2 087
    Par défaut [XSLT] Boucles imbriquées
    Bonjour tout le monde,

    Après avoir posé une question dont la résolution implique une version qui n'est pas encore implémentée depuis bien huit ans que la question émerge de temps à autre, me voilà maintenant avec une question beaucoup plus basique.

    Prenons un exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    -<member name="The.Name.Of.A.Certain.Method">
    <summary>A description of the method</summary>
    <param name="cpService" type="ICPService"/>
    <param name="logger" type="ILoggerManager"/>
    <param name="configuration" type="IConfiguration"/>
    </member>
    J'ai un objet en un certain nombre d'occurrences (member), et pour chaque occurrence un autre objet qui peut aussi exister en plusieurs occurrences (param).

    J'ai obtenu la liste des objets member, à l'aide de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            <xsl:for-each select="/doc/members/member">
    mais maintenant, je sèche pour afficher, pour chaque member, la liste de ses param.

    Facile, en principe ?

  2. #2
    Membre chevronné
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    2 050
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 2 050
    Points : 2 087
    Points
    2 087
    Par défaut
    Bon, il faut croire que ça devait me démanger de poser la question, puisqu'en définitive, une deuxième boucle <xsl:for-each> à l'intérieur de la première, ça ne pose guère de problème, surtout pour afficher juste les paramètres.

    ça se gâte quand je veux afficher ça dans une deuxième colonne d'un tableau HTML, car je dois fermer l'objet td et le rouvrir avant de fermer l'objet xsl:for-each, et XSLT n'aime pas ça.
    Tant pis, j'ai l'impression que je vais mettre une cellule vide à droite du titre paramètres, comme ça en dessous je pourrai mettre une ligne par paramètre.

    Meilleure idée ?

  3. #3
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 547
    Points : 21 602
    Points
    21 602
    Par défaut
    C'est pas bien clair sans exemple, malheureusement.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre actif
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Avril 2007
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 199
    Points : 297
    Points
    297
    Par défaut
    Comme le dit Thelvin...

    1/ exemple XML
    2/ ton essai XSLT
    3/ ce que tu attendais

    parce-que là pour comprendre ce que tu veux faire, tu facilites pas le travail ^^
    "Chuck Norris a déjà compté jusqu'à l'infini. Deux fois."

  5. #5
    Membre chevronné
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    2 050
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 2 050
    Points : 2 087
    Points
    2 087
    Par défaut
    OK OK.
    J'avais une ligne de titre pour annoncer les paramètres, en colspan="2", suivie d'une ligne par paramètre, avec une cellule vide à gauche et le détail du paramètre à droite.
    Sur la feuille de style XSLT ça donnait ç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
                  <tr>
                    <td colspan="2">
                      Parameters (see following lines, if any : lines with blank cell at left)
                    </td>
                  </tr>
                    <xsl:for-each select="param">
                      <tr>
                        <td></td>
                        <td>
                          * <xsl:value-of select="@name" /> - 
                          <xsl:value-of select="@type" />
                        </td>
                      </tr>
                    </xsl:for-each>
                <tr>
    Finalement, je me suis rendu compte que c'était à la fois plus lisible et plus simple à réaliser de présenter tous les caractères dans la même cellule.

    Alors, ça donne ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
                  <tr>
                    <td style="vertical-align: text-top;">
                      Parameters
                    </td>
                    <td>
                    <xsl:for-each select="param">
                          * <xsl:value-of select="@name" />
                          <xsl:if test="@type!=''"> - type :
                          <xsl:value-of select="@type" /></xsl:if><br />
                    </xsl:for-each>
                    </td>
                </tr>

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

Discussions similaires

  1. [XSLT] Boucle imbriquée
    Par cinou01 dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 07/12/2010, 15h35
  2. [XSLT] boucles imbriquées
    Par cinou01 dans le forum XSL/XSLT/XPATH
    Réponses: 0
    Dernier message: 26/11/2010, 18h45
  3. [XSLT] problème de boucle imbriquée en xsl/xpath
    Par lol88 dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 30/10/2009, 19h30
  4. [XSLT] Boucles imbriquées qui ne marchent pas :s
    Par Fatjo dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 11/10/2007, 11h35
  5. Boucles imbriquées
    Par Immobilis dans le forum ASP
    Réponses: 28
    Dernier message: 14/01/2005, 14h17

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