gpt4 book ai didi

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

转载 作者:数据小太阳 更新时间:2023-10-29 02:21:06 25 4
gpt4 key购买 nike

大家下午好

我不知道为什么这被证明如此困难,但我一定有过这样的日子!

我正在尝试对内存中的 XmlDocument(我已从 Web 服务检索 XML 并保存到数据库)对象执行 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();

当我尝试运行此代码时,出现“路径中的非法字符”异常。该路径不包含任何非法字符,所以我完全被难住了!

希望对你有所帮助。

谢谢

最佳答案

transformedDoc.Load(reader.ReadToEnd());

Load 从一个路径读取;您可能需要 transformedDoc.LoadXml(...)。但老实说,您可以将整个内容写入 StringWriter - 更直接:

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

此外,它适用于非 xml 输出(xslt 没有义务输出 xml)。

关于c# - 使用 C# 在内存中进行 XSLT 转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7966266/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com