[XSLT] Utilisation de la fonction text() pour localiser les noeuds texte d'un xml
Bonjour,
En faisant un petit test d'une transformation xsl, j'ai essayé de transformer tous les noeuds texte en <TEXTE>valeur</TEXTE>, pour que par exemple :
Code:
1 2 3 4 5
| <?xml version="1.0" encoding="UTF-8"?>
<Root>
<Bonjour>Bébé</Bonjour>
<Transaction>Pouét</Transaction>
</Root> |
Donne :
Code:
1 2 3 4 5
| <?xml version="1.0" encoding="UTF-8"?>
<Root>
<Bonjour><TEXT>Bébé</TEXT></Bonjour>
<Transaction><TEXT>Pouét<TEXT></Transaction>
</Root> |
Donc j'ai écrit une petite feuille xsl :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| <?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output
method="xml"
encoding="UTF-8"
indent="yes"/>
<!-- On traite l'élément / attribut courant -->
<xsl:template match="node() | @*">
<xsl:copy>
<xsl:apply-templates select="node() | @*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="text()">
<xsl:element name="TEXT">
<xsl:value-of select="."/>
</xsl:element>
</xsl:template>
</xsl:stylesheet> |
Mais ca me donne cela :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| <?xml version="1.0" encoding="UTF-8"?>
<Root>
<TEXT>
</TEXT>
<Bonjour>
<TEXT>Bébé</TEXT>
</Bonjour>
<TEXT>
</TEXT>
<Transaction>
<TEXT>Pouét</TEXT>
</Transaction>
<TEXT>
</TEXT>
</Root> |
Il considère donc des noeuds texte en plus de ceux existant.
Est-ce normal?
Merci :-)