[XSLT] Supprimer les caractères spéciaux HTML d'un noeud texte
Bonjour tout le monde!
J'ai un petit souci pour transformer du texte en XSLT.
J'ai un texte qui contient des caractères spéciaux HTML du genre é :
Citation:
2ème jour :
Et je souhaiterais la transformer en texte simple du genre :
Donc je voulais faire un template dans le style de ça :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
<xsl:template name="despecialiseHTML">
<xsl:param name="text" />
<!-- Tableau des caractères spéciaux -->
<xsl:variable name="caracteres">
<car special="&eacute;"><![CDATA[é]]></car>
<car special="&nbsp;"><![CDATA[ ]]></car>
<car special="&egrave;"><![CDATA[è]]></car>
</xsl:variable>
<xsl:for-each select="document('')//xsl:variable[@name='caracteres']/car">
<xsl:variable name="spe" select="@special" />
<xsl:variable name="normal" select="text()" />
<xsl:value-of select="translate($text, $spe, $normal)" />
</xsl:for-each>
</xsl:template> |
où le paramètre text contient le texte à transformer. Dans l'idée, cela correspond à créer un tableau associatif qui pour un caractère spécial associe sa valeur normal. Puis je voulais boucler sur ce tableau pour chaque entrée appeler la fonction translate.
Mais le souci est que la fonction translate remplace chaque caractère de $spe par $normal. Donc la fonction translate ne correspond pas à mon besoin.
Est-ce que quelqu'un aurait une idée pour m'aider à avancer ?
merci beaucoup!