1

我正在尝试在源 xml 上应用 XSL 样式表并将输出写入目标 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,但它不起作用。

4

1 回答 1

1

既然您正在写入文件,为什么不直接使用:

using (XmlReader xReader = XmlReader.Create("Source.xml"))
using (XmlWriter xWriter = XmlWriter.Create("Target.xml", xwrSettings)) {
    xslt.Transform(xReader, xWriter);
}
// your file is now written
于 2010-09-15T11:37:26.973 回答