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 :

probleme avec for-each


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 109
    Points : 99
    Points
    99
    Par défaut probleme avec for-each
    bonjour a tous je cherche depuis plusieurs heures comment ne pas avoir de redondance dans l'affichage de mes informations.

    voici mon document xml
    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
      <competences>
        <competence>
          <os>fedora</os>
        </competence>
        <competence>
          <langage>java</langage>
        </competence>
            <competence>
          <langage>php</langage>
        </competence>
                <competence>
          <langage>c++</langage>
        </competence>
        <competence>
          <dossier_logiciel>cahier de charge</dossier_logiciel>
        </competence>
        <competence>
          <dossier_logiciel>specification</dossier_logiciel>
        </competence>
        <competence>
          <os>XP</os>
        </competence>
      </competences>

    mon 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
    28
    29
    30
                        <xsl:for-each select="/cv/competences/competence/*">
                                          <xsl:variable name="variable" select="name()" />
                                        <xsl:if test="$variable='langage'">
                                        <fo:table-row>
                                             <fo:table-cell padding-top="5px">
                                                <fo:block  text-align="left" font-family="Verdana" font-size= "10pt" font-style="italic">
                                                    Langages
                                                </fo:block>
                                             </fo:table-cell>
                                              <fo:table-cell padding-top="5px">
                                                  <fo:block text-align="left" font-family="Verdana" font-size= "11pt">
                                                    <xsl:for-each select="/cv/competences/competence/*">
                                                        <xsl:call-template name="filtreCompetence">
                                                            <xsl:with-param name="laCompetence" select="'langage'" />
                                                        </xsl:call-template>
                                                    </xsl:for-each>
                                                 </fo:block>
                                              </fo:table-cell>
                                          </fo:table-row>
                                          </xsl:if>
                                       </xsl:for-each>
     
     
     
     <xsl:template name="filtreCompetence" match="/cv/competences/competence/*">
            <xsl:param name="laCompetence"/>
            <xsl:if test="name()=$laCompetence">
                    <xsl:value-of select="text()"/><xsl:text> </xsl:text><xsl:text> </xsl:text> 
            </xsl:if>
        </xsl:template>
    ca m'affiche
    Langages java php c++
    Langages java php c++
    Langages java php c++

    mais je veux que ca s'affiche qu'une seule fois .

    m'aider merci

  2. #2
    Membre éprouvé Avatar de laurentibus
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Points : 908
    Points
    908
    ... un flash ... et ça repart

    700R ... catch me if u can

    Best regards,
    .

  3. #3
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 109
    Points : 99
    Points
    99
    Par défaut
    salut .
    merci pour votre réponse mais moi c 'est pas pour trier.
    en plus le nom de ma balise est dynamique.
    en tous cas j'ai résolu le problème et ça 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
    19
         <xsl:variable name="isLangage" select="/cv/competences/competence/langage"/>
                                        <xsl:if test="$isLangage!=''">
                                          <fo:table-row>
                                             <fo:table-cell padding-top="5px">
                                                <fo:block  text-align="left" font-family="Verdana" font-size= "10pt" font-style="italic">
                                                    Langages
                                                </fo:block>
                                             </fo:table-cell>
                                              <fo:table-cell padding-top="5px">
                                                  <fo:block text-align="left" font-family="Verdana" font-size= "11pt">
                                                    <xsl:for-each select="/cv/competences/competence/*">
                                                        <xsl:call-template name="filtreCompetence">
                                                            <xsl:with-param name="laCompetence" select="'langage'" />
                                                        </xsl:call-template>
                                                    </xsl:for-each>
                                                 </fo:block>
                                              </fo:table-cell>
                                          </fo:table-row>
                                        </xsl:if>
    :

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

Discussions similaires

  1. Probleme de variable avec For each
    Par Pilout51 dans le forum VB.NET
    Réponses: 5
    Dernier message: 19/08/2011, 15h44
  2. Probleme avec For Each
    Par Seth77 dans le forum VB.NET
    Réponses: 7
    Dernier message: 22/03/2007, 14h08
  3. [XML][XSLT] Débutant {Probléme avec For-each-group}
    Par Silvia12 dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 29/01/2006, 21h38
  4. [VB]Probleme avec for each .....
    Par STRUFIELD dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 20/01/2006, 08h31
  5. [VB.NET] Problème avec For Each...
    Par cyrcroix dans le forum Windows Forms
    Réponses: 5
    Dernier message: 15/06/2005, 10h49

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