将Linq转换为XSLT

AK_*_*AK_ 9 c# xml linq xslt expression-trees

有没有办法将LINQ查询转换为XSLT?LINQ可以转换为SQL的方式相同吗?

我的意思是,如果我有一个坚实的明确定义的XML(符合一个XSD)有没有办法来编译下System.Linq.Expressions东西到XSLT对于该XML?

谢谢.

对于Dimitries请求我会尝试详细说明......基本上我在一个地方有一些数据(它基本上是块的xml可序列化数据),我需要处理它们,我需要结合并处理它们.

传入的原始数据和输出结果数据都是XML可序列化的,并且符合定义良好的XSD.

我想动态地生成处理逻辑 - 在其他地方.并允许我的用户更改和处理处理.我可以用Expression树轻松地表示它自己的处理.表达式树类似于解析树,可以捕获程序代码.这是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);
Run Code Online (Sandbox Code Playgroud)

基本上我想要的东西就像那样...如果我使用的话,我可以在单个linq查询中写出来 IQueryable.Aggregate

Geo*_*voy 3

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