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] Utilisation du for-each pour itérer sur les noeuds d'un élément


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 188
    Points : 106
    Points
    106
    Par défaut [XSLT] Utilisation du for-each pour itérer sur les noeuds d'un élément
    Bonjour,

    Je voulais poser une question sur une utilisation simple du for-each en xsl.

    Voila un petit xml :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?xml version="1.0" encoding="UTF-8"?>
    <Root>
    <personnes>
    <personne>Toto</personne>
    <personne>Titi</personne>
    </personnes>
    </Root>
    et voila un xsl :

    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
    18
    <?xml version="1.0" ?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
     
    <xsl:output 
      method="xml"
      encoding="UTF-8"
      indent="yes" 
      />
     
    <xsl:template match="/Root/personnes">
    	<xsl:for-each select=".">
    		<xsl:copy>
    			<xsl:value-of select="."/>
    		</xsl:copy>
    	</xsl:for-each>
    </xsl:template>
     
    </xsl:stylesheet>
    Je ne comprends pas pourquoi cela me donne en résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?xml version="1.0" encoding="UTF-8"?>
    <personnes>
    Toto
    Titi
    </personnes>
    cad que chaque balise "personne" n'est pas recopié.

    l'expression XPath "." du for-each représente juste les noeuds fils texte de l'élément "personnes" ?

    Apparemment, le fait qu'il recopie la balise "personnes" vient du xsl:copy.

    Et donc cela voudrait dire que si on veut reprendre la balise personne, il faudrait forcément un template qui matche personne et utiliser un xsl:copy (ou un template générique si on a pas de traitement particuler).

    Merci :-)

  2. #2
    Membre éclairé Avatar de herch
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    655
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 655
    Points : 773
    Points
    773
    Par défaut
    Salut,
    l'expression XPath "." du for-each représente juste les noeuds fils texte de l'élément "personnes" ?
    je crois que le . représente l'élément personnes lui même et pas ses fils
    essaie un peu ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <xsl:template match="/Root/personnes">
    	<xsl:for-each select="personne">
    		<xsl:copy>
    			<xsl:value-of select="."/>
    		</xsl:copy>
    	</xsl:for-each>
    </xsl:template>

  3. #3
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 188
    Points : 106
    Points
    106
    Par défaut Re
    Ouais, effectivement. Merci :-)

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

Discussions similaires

  1. [XSLT] XSLT sort dans un for-each avec select sur un param
    Par tralloc dans le forum Format d'échange (XML, JSON...)
    Réponses: 5
    Dernier message: 23/11/2012, 09h06
  2. Réponses: 7
    Dernier message: 09/04/2009, 09h34
  3. [xslt] Limiter un for-each aux x premiers éléments
    Par camboui dans le forum XSL/XSLT/XPATH
    Réponses: 13
    Dernier message: 18/11/2005, 16h09
  4. utilisation de for each
    Par billoum dans le forum ASP
    Réponses: 5
    Dernier message: 19/03/2004, 15h30
  5. utilisation d'objets ADO pour CMS sur POSTGRESQL7.3.2
    Par turbok dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 10/10/2003, 09h29

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