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] Balises conditionnelles


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre actif Avatar de ploxien
    Inscrit en
    Février 2006
    Messages
    467
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2006
    Messages : 467
    Points : 221
    Points
    221
    Par défaut [XSLT] Balises conditionnelles
    Hello,
    Lorsque j'affiche quelquechose en sortie, je voudrais le mettre dans un tableau, mais seulement si l'attribut @group est présent. Seulement, le document n'est pas valide car la balise n'est pas fermée au bon endroit...
    Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <xsl:if test="@group">
       <tr>
    </xsl:if>
     
    ... element à afficher, code long à ne pas devoir écrire deux fois
     
    <xsl:if test="@group">
       </tr>
    </xsl:if>
    Voila ce que je voudrais faire... Mais normal, ca ne marche pas, car la balise tr n'est pas fermée au bon endroit..

    Il y a une solution? Qui ne consiste pas à érire le code deux fois, une fois avec les balises et une fois sans?

    Merci d'avance.
    A+

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 958
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 958
    Points : 4 387
    Points
    4 387
    Par défaut
    Citation Envoyé par ploxien
    Hello,
    Lorsque j'affiche quelquechose en sortie, je voudrais le mettre dans un tableau, mais seulement si l'attribut @group est présent. Seulement, le document n'est pas valide car la balise n'est pas fermée au bon endroit...
    Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <xsl:if test="@group">
       <tr>
    </xsl:if>
     
    ... element à afficher, code long à ne pas devoir écrire deux fois
     
    <xsl:if test="@group">
       </tr>
    </xsl:if>
    Voila ce que je voudrais faire... Mais normal, ca ne marche pas, car la balise tr n'est pas fermée au bon endroit..

    Il y a une solution? Qui ne consiste pas à érire le code deux fois, une fois avec les balises et une fois sans?

    Merci d'avance.
    A+

    avez-vous essayé en spécifiant

    <xsl:output method="html"/>
    (ou éventuellement <xsl:output method="text"/>)

    en début du code xsl ?

  3. #3
    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,

    il y a une solution toute simple : factoriser le code dans un template nommé.
    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
    <xsl:choose>
      <xsl:when test="@group">
        <tr>
          <xsl:call-template name="element-to-display" />
        </tr>
      </xsl:when>
      <xsl:otherwise>
        <xsl:call-template name="element-to-display" />
      </xsl:otherwise>
    </xsl:choose>
    ...
    <xsl:template name="element-to-display">
     <!-- element à afficher, code long à ne pas devoir écrire deux fois -->
     ...
    </xsl:template>

  4. #4
    Membre actif Avatar de ploxien
    Inscrit en
    Février 2006
    Messages
    467
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2006
    Messages : 467
    Points : 221
    Points
    221
    Par défaut
    La première solution n'est pas compatible avec le reste de mon code.
    Quand à la deuxième, elle est parfaite... J'aurais pu y penser
    Merci

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

Discussions similaires

  1. [XSLT]balises meta
    Par Crazyfaboo dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 04/07/2007, 14h06
  2. [XSLT] Balise issue d'une variable
    Par ploxien dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 22/11/2006, 14h20
  3. [XSLT] Balise for-each et caractères spéciaux
    Par Guilbert69 dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 09/10/2006, 11h37
  4. Réponses: 3
    Dernier message: 03/08/2006, 15h06
  5. [.NET][XSLT] balise META
    Par virgul dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 03/05/2005, 11h35

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