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 é :
Et je souhaiterais la transformer en texte simple du genre :2ème jour :
Donc je voulais faire un template dans le style de ça :2ème jour :
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.
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 <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>
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!
Partager