J'ai un fichier XML qui contient des balises de mises en forme html.
Exemple :
<title>VAT Refund example</title>
<description><b> ... </b>& Collection Contact us Index
<b>VAT</b> <b>refund</b> Fiscal representation Intrastat Corporate
&<b>VAT</b> <b>Refund</b> example Home Logistics Services
Workshop<b> ... </b></description>
j'ai ecris un fichier XSL pour faire la transformation du XML en XSL.
Quand je regarde le fichier XML dans IE en incluant la stylesheet
(<?xml-stylesheet type='text/xsl' href='/rss.xsl' version='1.0'?>), le
résultat est correct,c'est à dire les balises <b> sont interprétés.
Le code XSL est juste : <xsl:value-of select="description"
disable-output-escaping="yes" /> (Avec disable-output-escaping="no"
j'obtiens le même résultat )
Par contre quand j'effectue la transformation (en C# avec la methode
transform de la classe XslTransform) les caractères spéciaux sont
interprétés.
En effet, le "<b>" devient "<b>"
Avez vous une idée sur le problème ?
Je suis conscient que je ne devrais pas avoir la mise en forme dans le
document XML.
Apparemment le problème vient de la transformation effectué en C# ?
Si je comprends bien, je ne peux pas à l'aide de C# transformé du XML avec l'option "disable-output-escaping " !
Patrick Philippot a écrit :
Patrick Philippot wrote: > Cela n'est pas supporté avec un XmlTextWriter (normal) .
Il faudrait peut-être que je justifie. Un XmlTextWriter est censé produire du Xml bien formé. Si on utilise "disable-output-escaping " , on risque de sortir un document mal formé du point de vue XML. Le choix d'implémentation est donc d'ignorer cet attribut. Ça se discute mais c'est logique.
Il faut réserver l'emploi du XmlTextWriter à la production de XML ou de XHTML. Pas d'HTML ou d'autres formats de texte.
-- Patrick Philippot - Microsoft MVP MainSoft Consulting Services www.mainsoft.fr
Merci pour la réponse Patrick,
Si je comprends bien, je ne peux pas à l'aide de C# transformé du XML
avec l'option "disable-output-escaping " !
Patrick Philippot a écrit :
Patrick Philippot wrote:
> Cela n'est pas supporté avec un XmlTextWriter (normal) .
Il faudrait peut-être que je justifie. Un XmlTextWriter est censé
produire du Xml bien formé. Si on utilise "disable-output-escaping " ,
on risque de sortir un document mal formé du point de vue XML. Le choix
d'implémentation est donc d'ignorer cet attribut. Ça se discute mais
c'est logique.
Il faut réserver l'emploi du XmlTextWriter à la production de XML ou de
XHTML. Pas d'HTML ou d'autres formats de texte.
--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Si je comprends bien, je ne peux pas à l'aide de C# transformé du XML avec l'option "disable-output-escaping " !
Patrick Philippot a écrit :
Patrick Philippot wrote: > Cela n'est pas supporté avec un XmlTextWriter (normal) .
Il faudrait peut-être que je justifie. Un XmlTextWriter est censé produire du Xml bien formé. Si on utilise "disable-output-escaping " , on risque de sortir un document mal formé du point de vue XML. Le choix d'implémentation est donc d'ignorer cet attribut. Ça se discute mais c'est logique.
Il faut réserver l'emploi du XmlTextWriter à la production de XML ou de XHTML. Pas d'HTML ou d'autres formats de texte.
-- Patrick Philippot - Microsoft MVP MainSoft Consulting Services www.mainsoft.fr
Patrick Philippot
Sylvain wrote:
Merci pour la réponse Patrick,
Si je comprends bien, je ne peux pas à l'aide de C# transformé du XML avec l'option "disable-output-escaping " !
Bien sûr que si mais il faut utiliser pour la sortie non pas un XmlTextWriter mais un Filestream. J'ai testé, ça fonctionne.
-- Patrick Philippot - Microsoft MVP MainSoft Consulting Services www.mainsoft.fr
Sylvain wrote:
Merci pour la réponse Patrick,
Si je comprends bien, je ne peux pas à l'aide de C# transformé du XML
avec l'option "disable-output-escaping " !
Bien sûr que si mais il faut utiliser pour la sortie non pas un
XmlTextWriter mais un Filestream. J'ai testé, ça fonctionne.
--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr