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] Lire le nom des attributs


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2006
    Messages
    857
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2006
    Messages : 857
    Points : 884
    Points
    884
    Par défaut [XSLT] Lire le nom des attributs
    Soit le fichier XML suivant
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <root>
    <fils id="1">
    <param1>aaa</param1>
    <param2>aaa</param2>
    <param3>aaa</param3>
    <param4>aaa</param4>
    </fils>
    <fils id="2">
    <param1>bbb</param1>
    <param2>bbb</param2>
    <param3>bbb</param3>
    <param4>bbb</param4>
    </fils>
    </root>
    Je ne connais pas le nom des attributs, comment je code mon XSL ? pour pouvoir afficher ma page HTML résultat de la transformation sous le style :
    <tr>
    <td>Param1</td><td>Param2</td><td>Param3</td><td>Param4</td>
    </tr>
    <tr>
    <td>aaa</td><td>aaa</td><td>aaa</td><td>aaa</td>
    </tr>
    <tr>
    <td>bbb</td><td>bbb</td><td>bbb</td><td>bbb</td>
    </tr>
    Voilà à peu près la XSL si je connaissais le nom de mes attributs.
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlnssl="http://www.w3.org/1999/XSL/Transform">

    <xsl:output method="html" indent="yes"/>
    <xsl:template match="root">
    <table>

    <!-- Entete -->
    <tr>
    <th>Param1</th>
    <th>Param2</th>
    <th>Param3</th>
    <th>Param4</th>
    </tr>

    <xsl:for-each select="fils">
    <tr>
    <td><xsl:value-of select="Param1"/></td>
    <td><xsl:value-of select="Param2"/></td>
    <td><xsl:value-of select="Param3"/></td>
    <td><xsl:value-of select="Param4"/></td>
    </tr>
    </xsl:for-each>
    </table>
    </xsl:template>
    </xsl:stylesheet>

  2. #2
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Points : 10 927
    Points
    10 927
    Par défaut
    tes params ?
    ce ne sont pas des attributs
    id=1
    serait un attibut s'il n'etait pas mal code
    c'est:
    id="1"

  3. #3
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Points : 10 927
    Points
    10 927
    Par défaut
    Si ils sont tout le temps de la meme forme et dans le même ordre (autrement ca va se compliquer )
    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
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlnssl="http://www.w3.org/1999/XSL/Transform">
     
    <xsl:output method="html" indent="yes"/>
    <xsl:template match="root">
    <table>
     
    <!-- Entete -->
    <tr>
    <xsl:for-each select="fils[1]/* ">
    <th><xsl:value-of select="name()"/></th>
     
    </xsl:for-each>
    </tr>
     
    <xsl:for-each select="fils">
    <tr>
    <xsl:for-each select="*">
    <td> <xsl:value-of select="."/> </td>
    </xsl:for-each>
    </tr>
    </xsl:for-each>
    </table>
    </xsl:template>
    </xsl:stylesheet>

  4. #4
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2006
    Messages
    857
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2006
    Messages : 857
    Points : 884
    Points
    884
    Par défaut
    Ok merci. C'était donc name().
    logique

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

Discussions similaires

  1. afficher le nom des attributs et leur contenu
    Par PoichOU dans le forum Général Java
    Réponses: 4
    Dernier message: 28/06/2007, 21h30
  2. [Configuration] Parcourir un dossier afin de lire le nom des fichiers qu'il contient
    Par 2berte dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 14/06/2007, 14h07
  3. récupérer le nom des attributs d'une classe
    Par danyboy85 dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 22/06/2006, 11h42
  4. [xpath] Requête sur le nom des attributs sans casse
    Par fedfil dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 30/01/2006, 10h58
  5. [XSLT] Changer le nom des éléments...
    Par kobe dans le forum XSL/XSLT/XPATH
    Réponses: 10
    Dernier message: 14/11/2005, 11h00

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