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] afficher le contenu d'une liste d'éléments vides dans une table


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 45
    Points : 29
    Points
    29
    Par défaut [XSLT] afficher le contenu d'une liste d'éléments vides dans une table
    Bonjour à tous,
    j'ai la structure XML suivante:

    <options>
    <option1/>
    <option3/>
    <option6/>
    </options>

    et je voudrais afficher ca dans une table sous la forme:
    options & option1
    & option3
    & option6

    (le & delimite les cellules).
    j'ai commence mon xsl comme ca :

    <xsl:template match="//options">
    <table>
    <xsl:for-each select="*">
    <tr>
    <td><xsl:if test="position()=1">Options</xsl:if></td>
    <td>???</td>
    </tr>
    </xsl:for-each>
    </table>
    </xsl:template>

    ma question est : comment remplacer les ??? et afficher le texte adéquat pour une option?
    je voudrais faire qque chose du genre:
    si noeud courant = option1 alors afficher toto
    si noeud courant = option2 alors afficher fluche
    ...

    Merci pour votre aide

  2. #2
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    Salut !


    pourquoi pas quelque chose de ce style :
    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
    <xsl:template match="//options">
    <table>
    <xsl:for-each select="*">
    <tr>
    <td><xsl:if test="position()=1">Options</xsl:if></td>
    <td><xsl:apply-template select="."/></td>
    </tr>
    </xsl:for-each>
    </table>
    </xsl:template>
     
    <xsl:template match="//options/option1">
    toto
    </xsl:template>
     
    <xsl:template match="//options/option2">
    fluche
    </xsl:template>
    sinon, il y a aussi ceci (peut-être plus propre) :
    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
    <xsl:template match="//options">
    <table>
    <xsl:for-each select="*">
    <tr>
    <td><xsl:if test="position()=1">Options</xsl:if></td>
    <td>
    <xsl:choose>
       <xsl:when test="name() = 'option1'">toto</xsl:when>
       <xsl:when test="name() = 'option2'">fluche</xsl:when>
       <xsl:otherwise>OPTION PAS RECONNUE</xsl:otherwise>
    </xsl:choose>
    </td>
    </tr>
    </xsl:for-each>
    </table>
    </xsl:template>
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 45
    Points : 29
    Points
    29
    Par défaut
    merci. pile poil ce que je voulais.
    pourquoi la seconde solution est elle plus propre?

  4. #4
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    parce que tout est regroupé dans le même template, ça évite qu'il y ait un malencontreux match de template lors d'un aute apply-template ailleurs...
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 05/08/2011, 18h53
  2. [ZF 1.10] Afficher le premier champ vide dans une liste déroulante
    Par king_soft dans le forum Zend Framework
    Réponses: 4
    Dernier message: 20/01/2011, 16h40
  3. Réponses: 2
    Dernier message: 28/08/2008, 16h35
  4. Réponses: 14
    Dernier message: 30/05/2006, 16h55
  5. Nomer une liste a partir d'un nom pris dans une liste
    Par leau2001 dans le forum Général Python
    Réponses: 2
    Dernier message: 22/05/2006, 11h51

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