C# 将Linq转换为XSLT

C# 将Linq转换为XSLT,c#,xml,linq,xslt,expression-trees,C#,Xml,Linq,Xslt,Expression Trees,有没有办法将LINQ查询转换为XSLT?LINQ转换为SQL的方法也一样吗 我的意思是,如果我有一个可靠的定义良好的XML(符合XSD),有没有办法将System.Linq.Expressions下的内容编译成与该XML相关的XSLT 多谢各位 为了满足您的要求,我将尝试详细阐述一下。。。基本上我在一个地方有一些数据(基本上是xml可序列化数据块),我需要处理它们,我需要组合和处理它们 传入的原始数据和输出的结果数据都是XML可序列化的,并且符合定义良好的XSD 我想在其他地方动态生成处理逻辑。

有没有办法将LINQ查询转换为XSLT?LINQ转换为SQL的方法也一样吗

我的意思是,如果我有一个可靠的定义良好的XML(符合XSD),有没有办法将System.Linq.Expressions下的内容编译成与该XML相关的XSLT

多谢各位

为了满足您的要求,我将尝试详细阐述一下。。。基本上我在一个地方有一些数据(基本上是xml可序列化数据块),我需要处理它们,我需要组合和处理它们

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

我想在其他地方动态生成处理逻辑。并允许我的用户更改和处理。我可以用表达式树很容易地表示它自己的处理过程。表达式树类似于解析树,可以捕获程序代码。这是LINQtoSQL的工作方式—它将表达式树转换为SQL查询

由于所有的收入数据和输出都是定义良好的XML,我可以使用XSLT轻松地进行转换,但我对XSLT还不够熟悉,无法编写动态XSLT生成器。所以我想我可以用C#构建转换并将它们转换成XSLT。。。。同样,它不是通用的C#,而是对定义良好的数据提供程序的特定查询

例如:

(非真实代码)

基本上我想要的是这样的东西。。。如果我使用
IQueryable.Aggregate

我可以在单个linq查询中编写它。是的,您可以,它在内部使用XSLT,如果您能够了解如何使用XSLT进行查询。

为什么不使用Linq2XML呢? 它在XDocument和XElement上运行

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


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

您能详细说明一下吗?你的问题没有多大意义。XSLT定义了一组从一个XML到另一个XML的转换。这和林克有什么关系。你能举一些具体的例子吗?顺便说一句,如果你有一个XSD,你可以使用
XSD.exe
从中生成一个对象模型,并使用LINQ在该对象模型上创建对象。你为什么要使用XSLT:-p你说的“LINQ可以转换为XML”是什么意思?你说的是使用LINQ到XML吗?那么LINQ不是转换为XML而是查询XML文档我熟悉XSLT和表达式/LINQ,但我在这里没有真正看到交叉-这不是一个“明显的”设计选择,xslt是解决方案的重要组成部分吗?或者那只是一个工具?如果是这样,我强烈怀疑还有其他(更好的)方法可以达到同样的目的。C#也可以进行动态生成。就我个人而言,我会在这里寻找一个元编程解决方案。我明白了,@Hellfrost。如果您提供一个执行转换的C#代码示例,我可以想到如何将此C#代码转换为XSLT--但是我不明白为什么需要编写任何C#代码--我们可以只编写XSLT代码。如果我理解正确,您希望创建一个LINQ表达式树,将其转换为XSLT并使用它转换XML。但是我认为没有必要使用XSLT步骤:您可以直接使用LINQ到XML。但我更希望得到一些与我的问题更相关的东西
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);