Bonjour Smiley smile ,

le titre est un peu long n'est-ce pas ?
J'ai un soucis avec IE 7 (qui l'eût cru ...). Je fais un commentaire conditionnel pour IE <= 6 (donc < 7), mais à travers DocBook. Pour avoir un résultat plaisant sous DocBook, j'active l'indentation de XSL (<xsl:output indent="yes"> ou un truc du genre, je ne sais plus exactement). Résultat des courses, il m'écrit le commentaire conditionnel de cette façon :
<!--[if lte IE 6]>
  // un CSS par exemple
<![ endif]
-->

Et c'est là tout le problème ! IE 6 comprend le saut de ligne après le [ endif], mais pas IE 7. Son moteur de rendu est complètement perdu, et il se fout en l'air (j'ai une page toute déglinguée — seul le fond apparaît, pas terrible —).
Donc je dois enlever l'indentation ? Hors de question, le résultat HTML sera bien trop sale Smiley confus .

Une idée ?
Je retouche les fichiers juste derrière avec PHP pour la colorisation syntaxique. Je pourrais faire intervenir Perl (un truc du genre : perl -pi -e 's/\[endif\]\n\s*-->/\[endif\]-->/g' $i par exemple), mais c'est un peu lourd et crade. Si une solution existe en XSL, ce serait mieux.

On notera au passage que IE 7 est vraiment codé comme une patate. Soit disant qu'il y avait des efforts de fait, un saut de ligne et c'est terminé ... Croyez moi, j'ai cherché un moment avant de trouver d'où venait le problème ...

PS : j'ai mis un espace entre [ et endif, sinon BBCode essaye de m'embêter Smiley cligne .

Modifié par HyWaN (08 Feb 2008 - 16:55)
Et si tu mettais le commentaire conditionnel dans une section CDATA, panaché d'un subtil mélange de disable-output-escaping ?

<xsl:comment>[if lte IE 6]<xsl:text disable-output-escaping="yes"><![CDATA[>
  // un CSS par exemple
<![ endif]]]></xsl:text></xsl:comment>


Chez moi ça a l'air de marcher...
Ça à l'air de marcher chez moi également Smiley cligne .
Merci beaucoup.

Que fait disable-output-escaping au juste ? Je ne connaissais pas.
HyWaN a écrit :
Ça à l'air de marcher chez moi également Smiley cligne .
Merci beaucoup.

Que fait disable-output-escaping au juste ? Je ne connaissais pas.


S'il reste à sa valeur par défaut, no, les caractères <, > et & présents dans le texte que doit produire la feuille XSL sont transformés en entités &lt;, &gt; et &amp; dans le document de sortie. Par exemple, on obtient 1&lt;2 au lieu de 1<2. Ici, comme il y avait plein de caractères de ce genre, c'était nécessaire...