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 :

[XPATH] Tester le nom d'une balise


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre habitué Avatar de jubourbon
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 540
    Points : 189
    Points
    189
    Par défaut [XPATH] Tester le nom d'une balise
    Bonjour à tous,

    ce que je veux faire est assez simple mais je n'y parvient pas.
    Je voudrais faire un xsl:choose, et lorsque la balise porte un certain nom, varier le traitement.

    Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <xsl:for-each select="*">
                        	<xsl:choose>
                                <xsl:when test="local-name(.)=adresse">
                                    <xsl:value-of select="@n"/>
                                    <xsl:value-of select="@rue"/><br />
                                    <xsl:value-of select="@cp"/>
                                    <xsl:value-of select="@ville"/><br />
                                   </xsl:when>
                                 <xsl:otherwise><xsl:value-of select="."/><br /></xsl:otherwise>
                            </xsl:choose>
                        </xsl:for-each>
    En gros lorsque la balise s'appelle adresse, je fais le premier traitement, sinon je fais le reste.

    Merci par avance pour votre aide.

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Points : 1 610
    Points
    1 610
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    test="local-name(.)='adresse'"
    Sinon, une approche plus "XSL-T":
    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
     
    <xsl:template match="/">
    ....
        <xsl:apply-templates select="*"/>
    ....
    </xsl:template>
     
    <xsl:template match="adresse">
          <xsl:value-of select="@n"/>
          <xsl:value-of select="@rue"/><br />
          <xsl:value-of select="@cp"/>
          <xsl:value-of select="@ville"/><br />
    </xsl:template>
     
    <xsl:template match="*">
           <xsl:value-of select="."/><br />
    </xsl:template>

  3. #3
    Membre habitué Avatar de jubourbon
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 540
    Points : 189
    Points
    189
    Par défaut
    Parfait merci, il ne me maquait que les '.

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

Discussions similaires

  1. [XSLT] modifier le nom d'une balise
    Par valbrand dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 03/09/2008, 14h27
  2. [RegEx] Isoler le nom d'une balise
    Par Bloodscalp dans le forum Langage
    Réponses: 3
    Dernier message: 01/02/2008, 17h08
  3. [XSLT]tester le contenu d'une balise
    Par koudjo dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 17/07/2006, 12h22
  4. [XSL] Test sur le nom d'une balise
    Par KibitO dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 18/12/2005, 13h44

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