我的代码:
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");
}
}
}问题是指出了它的意见。
在这种情况下,如何设置输出编码?
谢谢。
发布于 2014-01-14 12:05:02
使用
XmlWriterSettings xws = myXslTransform.OutputSettings.Clone();
xws.Encoding = Encoding.UTF8;
using (XmlWriter xw = XmlWriter.Create("out.xml", xws))
{
myXslTransform.Transform(@".\in.xml", xw);
}发布于 2014-01-14 09:49:25
这是直接从医生们发来的。
XslCompiledTransform.OutputSettings性质 获取一个
XmlWriterSettings对象,该对象包含从样式表的xsl:output元素派生的输出信息。 语法public XmlWriterSettings OutputSettings { get; }
这是一个只读的属性。
医生们继续
备注 在成功调用
Load方法后填充此属性。它包含从已编译样式表的xsl:output元素派生的信息。 可以将此XmlWriterSettings对象传递给XmlWriter.Create方法,以创建要输出的XmlWriter对象。
结论:
XmlWriter接受自定义XmlWriterSettings对象。XslCompiledTransform没有。https://stackoverflow.com/questions/21108244
复制相似问题