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 :

récuperer le nom d'un attribut (et non pas sa valeur)


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 13
    Points : 7
    Points
    7
    Par défaut récuperer le nom d'un attribut (et non pas sa valeur)
    Bonjour,

    Je travaille sur un document XML dont je ne connais pas la structure/namespace (ce n'est pas le sujet). Je connais certains noms de noeud mais pas tous, pour connaitre les descendants d'un noeud N je fais une boucle sur N/* et j'utilise <xsl:value-of select="local-name(.)"/>.
    (Ce n'est probablement pas la seule/meilleure façon de procéder, mais là aussi ce n'est pas le sujet. )

    Ma question est : y a t il moyen de faire la même chose sur les attributs d'un noeud afin d'en récuperer le nom (et non pas la valeur)?

    exemple : si mon dans fichier XML (que je ne peux pas visualiser) j'ai le noeud <a> suivant :

    <a att1="val1" att2="val2"> blablabla </a>

    Je cherche une commande qui me permet de récupérer att1 et att2 (et non pas val1 et val2)

    Merci par avance

  2. #2
    Membre émérite
    Avatar de polymorphisme
    Homme Profil pro
    Publishing
    Inscrit en
    Octobre 2009
    Messages
    1 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Publishing
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 1 460
    Points : 2 372
    Points
    2 372
    Par défaut
    Bonjour,

    tu peut utiliser l'expression XPath "a/@*" pour récupérer les attributs de l'élément a.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par polymorphisme Voir le message
    Bonjour,

    tu peut utiliser l'expression XPath "a/@*" pour récupérer les attributs de l'élément a.
    merci pour ta réponse, mais c'est justement ce que je ne veux pas faire! je ne cherche pas à récupérer les valeurs des attributs mais leurs noms!!!

  4. #4
    Expert confirmé
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Points : 4 843
    Points
    4 843
    Par défaut
    Citation Envoyé par oups! Voir le message
    merci pour ta réponse, mais c'est justement ce que je ne veux pas faire! je ne cherche pas à récupérer les valeurs des attributs mais leurs noms!!!
    Ben si justement, c'est ce que tu cherches à faire. Il faut simplement, comme pour les éléments, utiliser la fonction local-name() sur le noeud attribut séléctionné (ce qu'a donné polymorphisme) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <xsl:for-each select="//@*">
      <xsl:value-of select="local-name(.)"/>
    </xsl:for-each>

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par Loceka Voir le message
    Ben si justement, c'est ce que tu cherches à faire. Il faut simplement, comme pour les éléments, utiliser la fonction local-name() sur le noeud attribut séléctionné (ce qu'a donné polymorphisme) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <xsl:for-each select="//@*">
      <xsl:value-of select="local-name(.)"/>
    </xsl:for-each>
    Effectivement!! J'avais mal compris la réponse de polymorphisme

    Merci beaucoup à vous 2!

Discussions similaires

  1. Réponses: 3
    Dernier message: 23/12/2011, 12h15
  2. Réponses: 1
    Dernier message: 05/08/2010, 10h36
  3. certains attributs ne gardent pas leurs valeurs
    Par lequebecois79 dans le forum Struts 1
    Réponses: 3
    Dernier message: 30/04/2010, 18h34
  4. [PHP 5.3] [POO] Comment afficher le nom de l'attribut et non pas sa valeur
    Par pierrot10 dans le forum Langage
    Réponses: 5
    Dernier message: 28/03/2010, 21h59
  5. Passage par référence et non pas par valeur
    Par GPZ{^_^} dans le forum Flash
    Réponses: 2
    Dernier message: 14/05/2007, 15h21

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