[XSLT] Prefixer toutes les balises d'un XML
Bonjour,
Très basiquement, je souhaite prefixer toutes les balises de mon XML par une chaine de caractère
XML
Code:
1 2 3 4 5 6 7 8
| <?xml version="1.0" encoding="UTF-8"?>
<AAA>
<BBB>ZORRO</BBB>
<CCC>SUPERMAN</CCC>
<GGG>
<BBB>DIEUDO</BBB>
</GGG>
</AAA> |
RESULTAT ATTENDU
Code:
1 2 3 4 5 6 7 8
| <?xml version="1.0" encoding="UTF-8"?>
<pre_AAA>
<pre_BBB>ZORRO</pre_BBB>
<pre_CCC>SUPERMAN</pre_CCC>
<pre_GGG>
<pre_BBB>DIEUDO</pre_BBB>
</pre_GGG>
</pre_AAA> |
Mon Code XSL qui marche que pour un nom de balise :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| <?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" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="node()">
<xsl:copy>
<xsl:apply-templates select="node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="CCC">
<xsl:element name="{concat('pre_',name())}"><xsl:value-of select="CCC/."/>
<xsl:apply-templates select="node()"/>
</xsl:element>
</xsl:template>
</xsl:stylesheet> |
Je veux trouver un moyen de le faire pour toute les balises du XML.
Mais ce que j'ai pu essayer jusqu'à maintenant ne marche pas correctement
comme
Code:
1 2 3 4 5
| <xsl:template match="*">
<xsl:element name="{concat('pre_',name())}"><xsl:value-of select="."/>
<xsl:apply-templates select="node()"/>
</xsl:element>
</xsl:template> |
Merci d'avance
YB