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 :

Problème de fermeture de balise <tr>


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2004
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 9
    Points : 8
    Points
    8
    Par défaut Problème de fermeture de balise <tr>
    Bonjour,

    Je ne vois pas comment régler le problème suivant. Dans la construction d'un tableau, je dois affiché deux colonnes à partir d'une liste d'éléments contenus dans un fichier XML.

    ...XML.....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <elements>
         <element>machin 1</element>
         <element>machin 2</element>
         <element>machin 3</element>
                           . . .
         <element>machin n</element>
    </elements>


    Ma version XSL est à juste titre refusée car mon <tr> n'a pas de balise fermante avant le "</xsl:if>". Mais je vous l'écrit pourque vous puissiez comprendre ce que je veux faire. Evidement, je ne sais pas comment faire. Je dois pouvoir passer de 2 à 3,4 ou n colonnes sans trop de changement dans le code.

    .....XSL......

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <xsl:template match="element">
         <xsl:if test="((position()+1) mod 2)=0">
                <tr>
         </xsl:if>
                 <td>
                     <xsl:value-of select="." /> 
                 </td>
         <xsl:if test="((position()+1) mod 2)=0">
                </tr>
         </xsl:if>
    </xsl:template>



    ..... CE QUE JE VEUX ........


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    machin 1       machin 2
    machin 3       machin 4
    machin 5       machin 6
             .  .  .
    machin n-1     machin n



    Merci d'avance...

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut Re: Problème de fermeture de balise <tr>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <xsl:template match="element">
         <xsl:if test="((position()+1) mod 2)=0">
                <xsl:text disable-output-escaping="yes">&lt;tr&gt;<xsl:text>
         </xsl:if>
                 <td>
                     <xsl:value-of select="." /> 
                 </td>
         <xsl:if test="((position()+1) mod 2)=0">
                <xsl:text disable-output-escaping="yes">&lt;/tr&gt;<xsl:text>
         </xsl:if>
    </xsl:template>

  3. #3
    Futur Membre du Club
    Inscrit en
    Mars 2004
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 9
    Points : 8
    Points
    8
    Par défaut Re: Problème de fermeture de balise <tr>
    Merci beaucoup mathix , c'est exactement ça que je cherchais.

    Juste pour info, je m'etais trompé dans l'énnoncé du problème au niveau du 2eme if. voici la correction :

    Citation Envoyé par mathix
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <xsl:template match="element">
         <xsl:if test="((position()+1) mod 2)=0">
                <xsl:text disable-output-escaping="yes">&lt;tr&gt;</xsl:text>
         </xsl:if>
                 <td>
                     <xsl:value-of select="." /> 
                 </td>
         <xsl:if test="((position()) mod 2)=0">
                <xsl:text disable-output-escaping="yes">&lt;/tr&gt;</xsl:text>
         </xsl:if>
    </xsl:template>
    merci encore ...

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

Discussions similaires

  1. [DOM] XML problème de fermeture de balise
    Par yoyostras dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 11/05/2012, 16h16
  2. XSL : Problème obligation fermeture balises
    Par nono27200 dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 08/04/2008, 09h23
  3. [XSLT] Problème de fermeture de balise
    Par tatemilio2 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 24/10/2007, 09h57
  4. [Thread][socket]Problème de fermeture d'un thread
    Par meda dans le forum Concurrence et multi-thread
    Réponses: 4
    Dernier message: 04/11/2004, 01h03
  5. Problème de fermeture de l'application
    Par SkyDev dans le forum Langage
    Réponses: 2
    Dernier message: 16/06/2004, 02h06

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