将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

将Linq转换为XSLT

,我可以在一个linq查询中写出来

是的,您可以实现自己的查询提供程序,它在内部使用XSLT,如果您能弄清楚如何使用XSLT进行查询。

为什么不直接使用Linq2XML?它对XDocument和XElement进行操作

或者如果您希望人们使用XLST定义转换,为什么不直接在代码中对文档执行XSLT呢?

如果不以不同的形式重新创建一个Linq2XSLT,我看不出它如何帮助解决问题