Search code examples
c#xmlxsltencodingxmltextwriter

xmltextwriter transforms special characters


I get special characters transformed in the result of an xslt file transformation.
Has anyone experienced this before?

In the source document there's a character & which in the result is presented as &. I need the the original & character even in the result.

XmlDataDocument dd = new XmlDataDocument(ds);

XsltSettings settings = new XsltSettings();
settings.EnableDocumentFunction = true;
settings.EnableScript = true;

XslCompiledTransform transform = new XslCompiledTransform();

transform.Load(XmlReader.Create(new StringReader(transformSource.Transform)), settings, new XmlUrlResolver());

XsltArgumentList a = new XsltArgumentList();

a.AddExtensionObject("http://www.4plusmedia.tv", new TransformationHelper());

using (XmlTextWriter writer = new XmlTextWriter(path, System.Text.Encoding.UTF8))
{
    writer.Formatting = Formatting.Indented;
    transform.Transform(dd, a, writer);
}

Solution

  • If you want XslCompiledTransform to output a plain text file as a result of an XSLT transformation you should not transform to an XmlTextWriter you create, instead transform to a FileStream or TextWriter.