将Linq转换为XSLT
本文关键字:XSLT 转换 Linq | 更新日期: 2023-09-27 18:04:35
是否有办法将LINQ查询转换为XSLT?同样的方式LINQ可以转换为SQL?
我的意思是,如果我有一个坚实的良好定义的XML(符合XSD)是否有一种方法来编译的东西在System.Linq.Expressions到XSLT关于该XML?
谢谢。
应迪米特里的要求,我将尽量详细说明一点……基本上,我在一个地方有一些数据(基本上是xml可序列化数据块),我需要处理它们,我需要组合和处理它们。
传入的原始数据和输出的结果数据都是可XML序列化的,并且符合定义良好的XSD。
我想在其他地方动态地生成处理逻辑。并允许我的用户改变和摆弄处理。我可以很容易地用表达式树来表示处理过程。表达式树类似于解析树,可以捕获程序代码。这是linq to SQL的工作方式,它将表达式树转换为SQL查询。
因为所有收入数据和输出都是定义良好的XML,所以我可以用XSLT轻松地完成转换,但是我对XSLT还不够熟悉,无法编写动态XSLT生成器。所以我想我可以在c#中构建转换并将它们转换为XSLT....同样,它不是通用的c#,但可能是对定义良好的数据提供程序的特定查询。
举个例子:
(非真实代码)
var schemas = XSchemaSet.Load("a","b");
var doc = XDocument.Load("File",schemas);
var result = from node in doc.Nodes
where node.Name == "Cats" || node.Name == "Dogs"
select (new Node(){Name = "Animal Owner", Value = node.Owner)
var newDoc = new XDocument().AddNodes(result);
newDoc.Validate(schemas);
基本上我想要这样的东西…如果我使用IQueryable.Aggregate
是的,您可以实现自己的查询提供程序,它在内部使用XSLT,如果您能弄清楚如何使用XSLT进行查询。
为什么不直接使用Linq2XML?它对XDocument和XElement进行操作
或者如果您希望人们使用XLST定义转换,为什么不直接在代码中对文档执行XSLT呢?
如果不以不同的形式重新创建一个Linq2XSLT,我看不出它如何帮助解决问题