[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:
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:
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:
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 :-)