繁体   English   中英

NET转换后不推荐使用XslTransform类

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM