XSLT, CDATA, HTML et Firefox, la vraie solution ?
Bonjour,
après deux jours de recherche, je me résous à poster.
Il y a une quantité impressiante de posts faisant référence à mon problème, mais aucune solution intéressante n'a été proposée.
J'utilise la transformation Xsl et Xml pour former du Html. Dans certaines balises Xml, j'ai placé du contenu Html dans un Cdata et j'aimerai que suite à la transformation, il soit considéré comme du html et non comme du texte brut.
J'ai donc mon XML :
Code:
1 2 3 4
|
<data>
<![CDATA[<strong>ici mon texte</strong>,ensuite <a href="http//www.test.com">un lien</a>]]>
</data> |
Ensuite mon XSL :
Code:
1 2 3 4 5 6
|
<xsl:template match="data" >
<p>
<xsl:value-of select="." disable-output-escaping="yes" />
</p>
</xsl:template> |
Avec l'attribut disable-output-escaping="yes", la sortie fonctionne bien sous IE, mais pas sous Firefox, qui me sort le Cdata comme du texte brut avec des < et >. C'est normal, ai-je lu, c'est le W3C qui désaprouve l'utilisation de disable-output-escaping.
Ok, mais alors, quelle est la solution ? J'ai trouvé par-ci par-là des fonctions javascript qui décodent les entités < et > pour retransformer le tout en balises HTML... pas très propre.
Dans mon cas, j'utilise le plugin Transform de jQuery.
Merci d'avance pour votre aide, je suppose que je ne serai pas le seul dépanné...