XslCompiledTransform输出编码

我的代码:

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Xml.Xsl; namespace xslt_samples { class Program { static void Main(string[] args) { XslCompiledTransform myXslTransform = new XslCompiledTransform(); // Here the myXslTransform.OutputSettings is null still... myXslTransform.Load(@".\in3.xsl"); // The myXslTransform.OutputSettings is not null now, but // I get an exception: the XmlWriterSettings.Encoding read only. myXslTransform.OutputSettings.Encoding = Encoding.UTF8; myXslTransform.Transform(@".\in.xml", @".\out.xml"); } } } 

问题指向了评论。

在这种情况下如何设置输出编码?

谢谢。

使用

  XmlWriterSettings xws = myXslTransform.OutputSettings.Clone(); xws.Encoding = Encoding.UTF8; using (XmlWriter xw = XmlWriter.Create("out.xml", xws)) { myXslTransform.Transform(@".\in.xml", xw); } 

这直接来自文档 。

XslCompiledTransform.OutputSettings属性

获取一个XmlWriterSettings对象,该对象包含从样式表的xsl:output元素派生的输出信息。

句法

public XmlWriterSettings OutputSettings { get; }

这是一个只读属性。

文档继续

备注

成功调用Load方法后,将填充此属性。 它包含从已编译样式表的xsl:output元素派生的信息。

可以将此XmlWriterSettings对象传递给XmlWriter.Create方法,以创建要输出的XmlWriter对象。

结论:

  • XmlWriter接受自定义XmlWriterSettings对象。
  • XslCompiledTransform没有。