我在旧程序中安装了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);

10-07 14:56