Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/318.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# 使用C在内存中进行XSLT转换#_C#_.net_Xml_Xslt_Xmldocument - Fatal编程技术网

C# 使用C在内存中进行XSLT转换#

C# 使用C在内存中进行XSLT转换#,c#,.net,xml,xslt,xmldocument,C#,.net,Xml,Xslt,Xmldocument,大家下午好 我不知道为什么这是如此困难,但我必须有一个这样的日子 我正在尝试对内存中的XmlDocument(我已从Web服务检索XML并保存到数据库)对象执行XslCompiledTransform和XslCompiledTransform。到目前为止,我有以下代码: string xslFile = "C:\\MOJLogViewer\\GetClaimTransformed.xslt"; XslCompiledTransform processor = n

大家下午好

我不知道为什么这是如此困难,但我必须有一个这样的日子

我正在尝试对内存中的XmlDocument(我已从Web服务检索XML并保存到数据库)对象执行XslCompiledTransform和XslCompiledTransform。到目前为止,我有以下代码:

        string xslFile = "C:\\MOJLogViewer\\GetClaimTransformed.xslt";

        XslCompiledTransform processor = new XslCompiledTransform();
        processor.Load(xslFile);

        MemoryStream ms = new MemoryStream();
        processor.Transform(xdoc.CreateNavigator(), null, ms);

        ms.Seek(0, SeekOrigin.Begin);

        StreamReader reader = new StreamReader(ms);

        XmlDocument transformedDoc = new XmlDocument();
        transformedDoc.Load(reader.ReadToEnd());


        string output = reader.ReadToEnd();
        ms.Close();
当我试图运行这段代码时,我得到了“路径中的非法字符”异常。路径不包含任何非法字符,因此我完全被难住了

我希望你能帮忙

谢谢

Load
从路径读取;您可能需要
transformedDoc.LoadXml(…)
。但老实说,你可以把整件事写给一个
StringWriter
——更直接:

string output;
using(var writer = new StringWriter())
{
    processor.Transform(xdoc.CreateNavigator(), null, writer);
    output = writer.ToString();
}

此外,它还适用于非xml输出(xslt不必输出xml)。

您对Windows操作系统和VisualStudio有不同的本地化版本吗?xdoc的类型是什么?非常感谢-我的头今天根本不工作!再次感谢你。在
Transform
调用中,我得到了
XslTransformException:whitespace不能从已经加载的输入文档中删除。将输入文档改为XmlReader。
谁知道它为什么不能去除空白,也不知道为什么需要去除空白。
string output;
using(var writer = new StringWriter())
{
    processor.Transform(xdoc.CreateNavigator(), null, writer);
    output = writer.ToString();
}