c# - 将 Linq 转换为 XSLT

标签 c# xml linq xslt expression-trees

有没有办法将 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

,我可以在单个 linq 查询中编写它

最佳答案

是的,你可以implement your own query provider ,它在内部使用 XSLT,如果您知道如何使用 XSLT 进行查询的话。

关于c# - 将 Linq 转换为 XSLT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6926806/

相关文章:

c# - LINQ To Entities Include + Where 方法

c# - 如何从本地路径清除图像控件

Java - 如何将 XML 元素添加到根标记?

c# - 如何确定类型是否是 Action/Func 委托(delegate)之一?

java - 从 XSD 获取完整的 XML 结构

javascript - 从 JSON 转换为 XML 时出现问题

c# - 从内存集合中快速自动完成 (.NET)

c# - Linq 按不排序排序

c# - C# 应用程序是否可以与内核驱动程序通信?

c# excel在excel工作表上创建一个按钮