有没有办法将 LINQ 查询转换为 XSLT? LINQ 可以转换为 SQL 的方式相同吗?
我的意思是,如果我有一个定义明确的 XML(符合 XSD),是否有办法将 System.Linq.Expressions 下的内容编译成与该 XML 有关的 XSLT?
谢谢。
对于 Dimitries 请求,我将尝试详细说明......基本上我在一个地方有一些数据(基本上是 xml 可序列化数据 block ),我需要处理它们,我需要组合和处理它们.
传入的原始数据和输出结果数据都是 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
最佳答案
是的,你可以implement your own query provider ,它在内部使用 XSLT,如果您知道如何使用 XSLT 进行查询的话。
关于c# - 将 Linq 转换为 XSLT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6926806/