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 :

Nom de la balise "père" ?


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre émérite

    Homme Profil pro
    Urbaniste
    Inscrit en
    Mars 2002
    Messages
    255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Urbaniste

    Informations forums :
    Inscription : Mars 2002
    Messages : 255
    Points : 2 717
    Points
    2 717
    Par défaut Nom de la balise "père" ?
    Est-il possible de lire le nom de la balise père de la balise courante d'un modèle (template) ? Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    (index.xml)
    <doc>
      <truc>
        <chose>1</chose>
      </truc>
      <bidulle>
        <chose>33</chose>
      </bidulle>
    </doc>
    Le but étant d'avoir un comportement différent pour affiche chose s'il hérite de <truc> ou de <chose>. J'ai alors tenté d'afficher le nom de la balise père avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    (index.xsl)
    <xsl:template match="chose">
      <p><xsl:value-of select="parent::name()" /></p>
    </xsl:template>
    Bien sûr, il reste la solution bateau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <xsl:template match="bidulle/chose">
      ... le père est bidulle
    </xsl:template>
    <xsl:template match="truc/chose">
      ... le père est chose
    </xsl:template>
    Mais je risque de me répèter avant du code commun. Ok, je peux alors créer une fonction (xsl:template name=...), mais c'est pas ma question :-)

    @+ Haypo

  2. #2
    Membre confirmé
    Avatar de grishka
    Inscrit en
    Janvier 2003
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 285
    Points : 499
    Points
    499
    Par défaut
    malheureusement les chemins xpath acceptent des noeuds et non des fonctions, donc parent::name() est impossible.

    essaye plutot :
    <xsl:value-of select="name(parent::*)"/>

  3. #3
    Membre émérite

    Homme Profil pro
    Urbaniste
    Inscrit en
    Mars 2002
    Messages
    255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Urbaniste

    Informations forums :
    Inscription : Mars 2002
    Messages : 255
    Points : 2 717
    Points
    2 717
    Par défaut
    Merci beaucoup, ça marche ;-)

    @+ Haypo

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

Discussions similaires

  1. Augmenter la hauteur du div/span de la balise &quot;code&quot;
    Par Djakisback dans le forum Evolutions du club
    Réponses: 10
    Dernier message: 24/01/2009, 15h31

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