Bonjour,
Je voulais poser une question sur une utilisation simple du for-each en xsl.
Voila un petit xml :
et voila un xsl :
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>
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
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>
cad que chaque balise "personne" n'est pas recopié.
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>
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 :-)
Partager