Как создать XML с определенной кодировкой, используя XSLT и XMLWRITER - PullRequest
1 голос
/ 15 сентября 2010

Я пытаюсь применить таблицу стилей XSL к исходному xml и записать вывод в целевой xml файл.Xsl удаляет комментарии xml, присутствующие в исходном xml.

Целевой файл xml имеет кодировку UTF-16 в заголовке.

Но все же я хочу, чтобы выходной xml был в кодировке utf-8.Код, который я использовал:

            XmlWriterSettings xwrSettings = new XmlWriterSettings();
            **xwrSettings.Encoding = Encoding.UTF8;**

            XslCompiledTransform xslt = new XslCompiledTransform();
            xslt.Load("sample.xsl");
            StringBuilder sb = new StringBuilder();
            XmlReader xReader = XmlReader.Create("Source.xml");
            XmlWriter xWriter = XmlWriter.Create(sb, xwrSettings);                
            xslt.Transform(xReader, xWriter);
            File.WriteAllText("Target.xml",sb.ToString());

Я пытался установить для параметра XML Writer значение UTF-8, но он не работает.

1 Ответ

1 голос
/ 15 сентября 2010

Поскольку вы пишете в файл, почему бы просто не использовать:

using (XmlReader xReader = XmlReader.Create("Source.xml"))
using (XmlWriter xWriter = XmlWriter.Create("Target.xml", xwrSettings)) {
    xslt.Transform(xReader, xWriter);
}
// your file is now written
...