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
没有。