XslTransform类在之后已弃用.NET转换

本文关键字:NET 转换 之后 XslTransform | 更新日期: 2023-09-27 17:59:52

我在一个旧程序中使用了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);

现在我得到了:

无法从转换’系统。IO.FileStream"到’系统。Xml。XmlWriter的

我试图通过添加这样做来纠正这一点:

XPathDocument doc = new XPathDocument(fileStream);
XmlWriter writer = XmlWriter.Create(Console.Out, xslt.OutputSettings);
xslt.Transform(doc, writer);

我不再收到错误,但我的代码没有进行XML转换。

有什么想法吗?

谢谢。

XslTransform类在之后已弃用.NET转换

我认为

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 的完整文章

在前两个代码片段中,您似乎使用fileStream作为输出,使用xPathNav作为输入。

但在最后一个片段中,您使用fileStream(通过doc)进行输入。

您是否真的将fileStream更改为您的输入文档,或者这是一个错误?