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] Un petit souci avec les <xsl:choose> et <xsl:when> dans tableau


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 120
    Points : 56
    Points
    56
    Par défaut [XSLT] Un petit souci avec les <xsl:choose> et <xsl:when> dans tableau
    Salut à tous,
    j'ai mon code suivant qui doit avoir un 'tit souci car il n'y a que mon premier when qui s'appliqu en sortie, comment ça se fait?
    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
     
    <xsl:template match="tbody">	
     <xsl:choose>							
       <xsl:when test="//tgroup[@tgroupstyle='2 clonnes']">
        <thead> 				
        <xsl:apply-templates select="row[position()=1]"/>                                  
        </thead>  
        <tbody>                            
        <xsl:apply-templates select="row[position()>1]"/>
        </tbody>    
        </xsl:when>
         <xsl:when test="//tgroup[@tgroupstyle='2 ligne titre']">                          
       <thead>                                
      <xsl:apply-templates select="row[position()=1]"/> 
       <xsl:apply-templates select="row[position()=2]"/>			 
      </thead> 
       <tbody>                             
       <xsl:apply-templates select="row[position()>2]"/>
       </tbody>
       </xsl:when>             
       </xsl:choose>	
     </xsl:template>
    Merci d'avance

  2. #2
    Membre éclairé
    Inscrit en
    Octobre 2005
    Messages
    847
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 847
    Points : 841
    Points
    841
    Par défaut
    essaye d'ajouter un "otherwise"
    Ce n’est pas en cassant le thermomètre que vous ferez baisser la température

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 120
    Points : 56
    Points
    56
    Par défaut
    avec le <xsl:otherwise/> ça l'appplique pas pour autant

  4. #4
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Bonjour,

    Citation Envoyé par citizen87
    j'ai mon code suivant qui doit avoir un 'tit souci car il n'y a que mon premier when qui s'appliqu en sortie, comment ça se fait?
    Sans doute parce que l'expression XPath dans son select est toujours vraie...
    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

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 120
    Points : 56
    Points
    56
    Par défaut
    Citation Envoyé par GrandFather
    Sans doute parce que l'expression XPath dans son select est toujours vraie...
    Tu peux être plus explicite stp? Merci d'avance

  6. #6
    Membre éclairé
    Inscrit en
    Octobre 2005
    Messages
    847
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 847
    Points : 841
    Points
    841
    Par défaut
    il veut dire que cette condition

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:when test="//tgroup[@tgroupstyle='2 clonnes']">
    est tjrs verifiée!
    Ce n’est pas en cassant le thermomètre que vous ferez baisser la température

  7. #7
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Citation Envoyé par citizen87
    Tu peux être plus explicite stp? Merci d'avance
    Une question : est-ce que tu sais comment est censé fonctionner un xsl:choose ?
    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

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 120
    Points : 56
    Points
    56
    Par défaut
    Ben je crois , tant que la condition du premier when est vérifiée il l'applique et si il le voit plus il applique le 2eme ainsi de suite jusqu'à ne plus rien voir et là c'est <xsl:otherwise/>... Je suis autodidacte en xsl.
    En fait j'ai plein de tableaux dans mes documents, là je teste avec 2 tgroupstyle mais au final j'aurai 11 attributs tgroupstyle.
    Les 2 tgrouspstyles du fichier test sont bien renseignés alors je comprend pas pourquoi il n'applique que le premier "when".

  9. #9
    Membre éclairé
    Inscrit en
    Octobre 2005
    Messages
    847
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 847
    Points : 841
    Points
    841
    Par défaut
    que ce qui te permet de dire qu'il applique tjrs le même? as tu essayer de mettre quelque chose de trés differénts dans tes "when"? as tu inversé l'ordre de tes when? as tu mis une condition bidon (jamais verifié) dans le premier "when"?. il faut tester tt ça pour voir.
    Ce n’est pas en cassant le thermomètre que vous ferez baisser la température

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 120
    Points : 56
    Points
    56
    Par défaut
    En fait j'ai des tableaux avec une entête et d'autres avec 2 entêtes. Si je mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <xsl:when test="//tgroup[@tgroupstyle='2 ligne titre']">                          
          <thead>
             <xsl:apply-templates select="row[position()=1]"/>
             <xsl:apply-templates select="row[position()=2]"/>
           </thead> 
           <tbody>      
               <xsl:apply-templates select="row[position()>2]"/>
           </tbody>
    </xsl:when>
    comme premier "when" il attribue à tous mes tableaux deux lignes d'entêtes, si au contraire j'intervertis pareil, il attribue à tous mes tableaux une ligne d'entête. Et si j'ajoute quelq chose sur les balises du premier when, là j'ai plus de tableau (ce qui est normal). Si en revanche j'ajoute des truc sur le 2eme "when" il se passe rien mes tableau fonctionnent avec juste un "when" celui qui est en premier position.
    Ne penses tu pas que c'est ma manière de déclarer mon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:when test="//tgroup[@tgroupstyle='2 ligne titre']">
    qui n'est pas bonne?
    L'arboresscence de mes tableaux ressemble à ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <table>
      <tgroup>
        <tbody>
              <row>
                <entry>
                    <Txttable>
                       ...............le bla bla du tableau
                     <Txttable/>
                <entry/>
               etc.
    Moi je veux qu'en fonction de mes tableaux, que ma 1ère ligne ou mes 2 premières lignes se créent dans une balise <thead> Qui existe dans ma dtd mais non dans mes fichiers xml

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 120
    Points : 56
    Points
    56
    Par défaut
    Merci à tous en fait l'erreur provenait de moi, il fallait juste que je mette
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:when test="../@tgroupstyle='2 ligne titre'">
    au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:when test="//tgroup[@tgroupstyle='2 ligne titre']">

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

Discussions similaires

  1. Petit souci avec les dialogues
    Par Teaniel dans le forum BOUML
    Réponses: 4
    Dernier message: 23/07/2011, 15h29
  2. Petit soucis avec les doubles
    Par yakamoneye dans le forum Débuter
    Réponses: 30
    Dernier message: 08/06/2008, 11h04
  3. Un petit souci avec les dates
    Par Ben-o dans le forum SQL Procédural
    Réponses: 11
    Dernier message: 27/09/2007, 18h42
  4. petit soucis avec les listes
    Par Death83 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 03/09/2005, 10h08

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