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 :

xsl value-of


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 82
    Par défaut xsl value-of
    bonjour,

    j'ai une fichier XML du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <personne age= 'xxxx'>
    <nom>machin</nom>
    <prenom>bidule</prenom>
    </personne>
    je voudrais récupérer la valeur de prénom et la valeur de age
    j'ai utilisé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <xsl:value-of select="nom"/> 
    <xsl:value-of select="@age"/>
    mais ça ne me renvoie rien et je peux avoir le prenom qu'avec text(). mais son utilisation se limite uniquement au type PCDATA

    donc je voudrais savoir comment récupérer les valeurs de éléments et attributs??

    je procède de cette manière dans mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <xsl:template match="personne">
    <xsl:apply-templates select="nom"/>
    <xsl:apply-templates select="prenom"/>
    <xsl:apply-templates select="@age"/>
    </xsl:template>
     
    <xsl:template match="nom">
    blablabla   <xsl:value-of select="nom"/> ne marche pas !!!!
      <xsl:value-of select="text()"/> ça marche mais seulement pour PCDATA 
    </xsl:template>

  2. #2
    Membre éclairé
    Inscrit en
    Décembre 2004
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 63
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <xsl:template match="nom">
    blablabla   <xsl:value-of select="."/> 
    </xsl:template>

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

    Informations forums :
    Inscription : Décembre 2004
    Messages : 82
    Par défaut mais encore
    si j'ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <personne age="...." nom="......" prenom="....."/>
    il faut faire un template match pour chaque attribut??
    je ne peux pas faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <xsl:template match select="personne'">
    la personne s'appelle <xsl:value-of select="@penom"> <xsl:value-of select="@nom">
    et son age est <xsl:value-of select="@age">
    </xsl:template>
    merci

  4. #4
    Membre éclairé
    Inscrit en
    Décembre 2004
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 63
    Par défaut
    oui fait faire un value-of pour chaque attribut, je suis pas sure mais essaye avec @*

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 82
    Par défaut j'ai pas compris
    merci pour ton aide mais je n'ai pas compris tes réponses.

    je ne comprend pas pourquoi <xsl:value-of select="@machin"> me renvoie toujours vide alors que sur le net c'est rempli d'exemples comme ça!

  6. #6
    Membre éclairé
    Inscrit en
    Décembre 2004
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 63
    Par défaut
    si tu regarde bien sur le net tu veras bien que @ est utiliser pour les noms d'attributs et non pour le noms de balise regarde la doc de W3C http://xmlfr.org/w3c/TR/xslt/#attribute-value-templates, mais ya plus simple que value-of
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <xsl:template match select="personne'">
    la personne s'appelle {@penom} {@nom}
    et son age est {@age}
    </xsl:template>

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 82
    Par défaut merci
    t'as bien raison, j'appliquais mon XSLT sur un mauvais XML.

    Du coup tes explications sont claires maintenant alors que je doutais quant à leur justesse !

    merci

  8. #8
    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
    Citation Envoyé par guemairm
    si tu regarde bien sur le net tu veras bien que @ est utiliser pour les noms d'attributs et non pour le noms de balise regarde la doc de W3C http://xmlfr.org/w3c/TR/xslt/#attribute-value-templates, mais ya plus simple que value-of
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <xsl:template match select="personne'">
    la personne s'appelle {@penom} {@nom}
    et son age est {@age}
    </xsl:template>
    Attention, les "attribute value templates", qui s'écrivent entre accolades, ne peuvent être utilisés que dans la valeur d'un attribut (comme leur nom l'indique), jamais dans le contenu d'un template comme ci-dessus.
    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

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

Discussions similaires

  1. <a href="<xsl:value-of select='file'>">
    Par gedeon555 dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 28/07/2011, 13h54
  2. [Debutant] [XSL] Probleme xsl:value-of select
    Par olivier1978 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 09/09/2007, 19h31
  3. [XSLT][débutant] Problème xsl:value-of dans xsl:for-each
    Par Choubie dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 09/05/2007, 16h30
  4. xpath dynamique dans un xsl:value-of
    Par zewam dans le forum XMLRAD
    Réponses: 11
    Dernier message: 19/01/2006, 12h53
  5. <img src="<xsl:value-of select="image"
    Par ToxiZz dans le forum XSL/XSLT/XPATH
    Réponses: 22
    Dernier message: 09/01/2006, 17h17

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