Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# XslTransform类在.NET转换后不推荐使用_C#_.net_Xml_Xslt - Fatal编程技术网

C# XslTransform类在.NET转换后不推荐使用

C# XslTransform类在.NET转换后不推荐使用,c#,.net,xml,xslt,C#,.net,Xml,Xslt,我在一个旧程序中使用了XslTransform,在将代码转换为.NETF3.5之后,编译器说XslTransform已被弃用,并被XslCompiledTransform取代 这是旧代码: XslTransform xslt = new XslTransform(); xslt.Load(xslTemplate); xslt.Transform(xPathNav, null, fileStream, null); 我已将代码更改为如下所示: XslCompiledTransform xslt

我在一个旧程序中使用了XslTransform,在将代码转换为.NETF3.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转换

有什么想法吗


谢谢。

MSDN实际上有一篇关于

的完整文章MSDN实际上有一篇关于

的完整文章在前几段代码片段中,您似乎在使用
fileStream
进行输出,而
xPathNav
进行输入

但在最后一段代码中,您使用了
fileStream
(通过
doc
)进行输入


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

在前两段代码片段中,您似乎使用
fileStream
进行输出,
xPathNav
进行输入

但在最后一段代码中,您使用了
fileStream
(通过
doc
)进行输入

你真的把
fileStream
改成了你的输入文档吗?还是这是一个错误

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);
我想

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);

XmlWriter=XmlWriter.Create(Console.Out,xslt.OutputSettings);`这会写入控制台您检查过了吗?试试writer.close()或flush()“但是代码没有进行XML转换”是什么意思?您没有创建输出文件吗?输出文件包含XML,但它与输入相同?XmlWriter writer=XmlWriter.Create(Console.Out,xslt.OutputSettings);`这会写入控制台您检查过了吗?试试writer.close()或flush()“但是代码没有进行XML转换”是什么意思?您没有创建输出文件吗?输出文件包含XML,但它与输入文件相同?这不是一个错误,因为转换函数不接受FileStreal in参数,所以我在我的代码中找到了microsoft网站中的代码。您对使用FileStream有什么建议吗?@dotNET:我知道您不能再将FileStream直接传递给Transform()。但您最初使用fileStream作为输出(第二个参数,在第二个代码段中),而在第三个代码段中,您使用doc(从fileStream派生)作为输入。它真的应该从输出更改为输入吗?这不是一个错误,因为Transform函数不接受FileStreal in参数,所以我在microsoft网站中的代码中找到了我的代码。您对使用FileStream有什么建议吗?@dotNET:我知道您不能再将FileStream直接传递给Transform()。但您最初使用fileStream作为输出(第二个参数,在第二个代码段中),而在第三个代码段中,您使用doc(从fileStream派生)作为输入。它真的应该从输出变为输入吗?