Bonjour à tout le monde,

Voici une petite astuce de sioux pour permettre à une xsl de mettre en forme du texte html après transformation.

Nous avons besoin pour cela d'un champs de base de données contenant de l'html avec balises.

coté php
Nous récupérons ce que nous avons en base et on le formate pour un retour xml du php.

$xmlResult = '<dbRows>';
$xmlResult .= '<item htmlText="';
$xmlResult .= htmlentities(utf8_decode( '<p>Use this W3C-compliant, tableless, CSS-template as you like but keep'));
$xmlResult .= '" />';
$xmlResult .= '<dbRows>';


coté xsl
A mettre dans un xsl:template

<div id="modh">
<xsl:value-of select="dbResults/dbRows/item/@htmlText" disable-output-escaping="yes" />
</div>
<script type="text/javascript">
document.getElementById('modh').innerHTML = '<xsl:value-of select="dbRows/item/@htmlText" />';
</script>


A ce stade Mozilla commencera par écrire le contenu " htmlentitiesé " dans le div " modh ".
Puis exécutera le script DHTML qui lui écriera le html correctement.

Testé sous : Mozilla, Opéra, Chrome & IE
Modifié par Slaim666 (04 Nov 2009 - 18:08)