[英]XslTransform class is deprecated after .NET conversion
我在一个旧程序中使用了XslTransform,在将代码转换为.NET F 3.5之后,编译器表示已弃用XslTransform并由XslCompiledTransform代替。
这是旧的代码:
XslTransform xslt = new XslTransform();
xslt.Load(xslTemplate);
xslt.Transform(xPathNav, null, fileStream, null);
我将代码更改为如下所示:
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load(xslTemplate);
xslt.Transform(xPathNav, fileStream);
现在我得到:
无法从“ System.IO.FileStream”转换为“ System.Xml.XmlWriter”
我尝试通过添加以下内容来纠正此问题:
XPathDocument doc = new XPathDocument(fileStream);
XmlWriter writer = XmlWriter.Create(Console.Out, xslt.OutputSettings);
xslt.Transform(doc, writer);
我不再遇到错误,但是我的代码没有进行XML转换。
有任何想法吗 ?
谢谢。
我认为
XslTransform xslt = new XslTransform();
xslt.Load(xslTemplate);
xslt.Transform(xPathNav, null, fileStream, null);
可以用XslCompiledTransform编写如下
XslTransform xslt = new XslCompiledTransform();
xslt.Load(xslTemplate);
xslt.Transform(xPathNav, null, fileStream);
MSDN实际上有完整的文章,关于从XslTransform迁移到XslCompiledTransform
在前xPathNav
代码片段中,您似乎正在使用fileStream
进行输出,并使用xPathNav
进行输入。
但是在最后一小段中,您正在使用fileStream
(通过doc
)进行输入。
您是否真的将fileStream
更改为您的输入文档,还是这是一个错误?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.