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]Comment manipuler tous les attributs d'un élément en même temps ?


Sujet :

XSL/XSLT/XPATH XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 172
    Par défaut [XSLT]Comment manipuler tous les attributs d'un élément en même temps ?
    Bonjour,

    Voilà, j'aimerais pouvoir manipuler les attributs d'un élément au travers par exemple de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:template match="@*">
    Puis ensuite de pouvoir manipuler ces attributs.
    Seulement je ne sais pas comment les appeler...
    Les trucs comme "self" me retourne l'élément courant, et non l'attribut.

    par exemple :
    si dans mon .xml j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <elem att1="1" att2="2" etc.../>
    à la fin je veux avoir un truc du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <table>
      <tr>
        <td>1</td>
        <td>2</td>
        etc...
      </tr>
    </table>
    Sans avoir à modifier mon fichier .xsl dès que je rajoute un attribut dans mon .xml...

    Merci d'avance

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

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

    il faut utiliser la même syntaxe XPath que celle du template dédié aux attributs (@ est le raccourci pour l'axe « attribute » :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <xsl:template match="elem">
      <tr>
        <xsl:apply-templates select="@*" />
      </tr>
    </xsl:template>
    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

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 172
    Par défaut
    Bah en fait mon problème n'est pas là, mais dans la template qui sera appelée par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:apply-templates select="@*" />
    Si dans la template, je fais un truc du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <td><xsl:value-of select="self"></td>
    Ça ne fonctionne pas du tout :-/

  4. #4
    Membre Expert Avatar de alain.couthures
    Profil pro
    Gérant
    Inscrit en
    Avril 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Par défaut
    Et ça, ça ne marche pas ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <td><xsl:value-of select="."></td>

  5. #5
    Membre émérite
    Profil pro
    Responsable Dev
    Inscrit en
    Décembre 2003
    Messages
    788
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable Dev

    Informations forums :
    Inscription : Décembre 2003
    Messages : 788
    Par défaut
    On peut mettre aussi en place des règles différentes pour chaque type d'attribut
    appel des templates
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <xsl:apply-templates select="@*" />
    templates
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <!-- template par défaut -->
    <xsl:template match="@*">
    <xsl:-value -of select="."/>
    </xsl:template>
    <!-- template spécifique à l'attribut tutu -->
    <xsl:template match="@tutu">
    attribut tutu: <xsl:-value -of select="."/>
    </xsl:template>

Discussions similaires

  1. Réponses: 8
    Dernier message: 13/07/2007, 11h05
  2. [XSLT] Récupération de tous les attributs d'un élément
    Par Lima dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 07/03/2007, 16h05
  3. [JDOM] Récupérer tous les attributs d'un élément
    Par ammah dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 21/06/2006, 17h05
  4. [XSLT] comment afficher tous les noms de balises
    Par stanilas dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 12/11/2005, 22h24
  5. Réponses: 4
    Dernier message: 16/08/2003, 13h21

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