为了账号安全,请及时绑定邮箱和手机立即绑定

将 xml 和 xsl 作为字符串传递以在 xslt 3 中进行处理

将 xml 和 xsl 作为字符串传递以在 xslt 3 中进行处理

C#
繁星淼淼 2021-09-19 18:46:52
我正在使用 xslt 3.0 saxon-HE 9.8 库将 xml 转换为 html。在 c# 代码中使用它。我在输入中传递 xml 和 xslt 文件路径以使其转换并获得输出。任何人都可以让我知道如何将 xml 作为字符串传递,并将 xslt 作为字符串传递给 c# 代码中的输入以进行处理。下面是我的代码。public static string Transform_XML(string param, string inputfile, string xsltfilename)    {        var xslt = new FileInfo(xsltfilename);        var input = new FileInfo(inputfile);        // Compile stylesheet        var processor = new Processor();        var compiler = processor.NewXsltCompiler();        var executable = compiler.Compile(new Uri(xslt.FullName));        XPathDocument doc = new XPathDocument(new StringReader(param));        DocumentBuilder db = processor.NewDocumentBuilder();        XdmNode xml;        using (XmlReader xr = XmlReader.Create(new StringReader(param)))        {            xml = db.Build(xr);        }        // Do transformation to a destination        var destination = new DomDestination();        using (var inputStream = input.OpenRead())        {            var transformer = executable.Load();            transformer.SetParameter(new QName("", "", "user_entry"), xml);            transformer.SetInputStream(inputStream, new Uri(input.DirectoryName));            transformer.Run(destination);        }        return destination.XmlDocument.InnerXml.ToString();    }想要将 xml 和 xslt 作为字符串而不是文件路径传递。
查看完整描述

1 回答

?
波斯汪

TA贡献1811条经验 获得超4个赞

XsltTransformer有一个方法SetInputStream(),允许你提供输入作为流(确实你可能在使用哪个)。

这篇文章如何从字符串生成流?告诉您如何从字符串创建流。


查看完整回答
反对 回复 2021-09-19
  • 1 回答
  • 0 关注
  • 212 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信