代码之家  ›  专栏  ›  技术社区  ›  Noldorin

LINQ到XML-它是如何工作的?

  •  11
  • Noldorin  · 技术社区  · 15 年前

    我的问题本质上是一个简单的问题,尽管我在这里寻找尽可能深入的答案: 怎么做 LINQ to XML 幕后工作?

    现在,我已经有了相当多的为各种应用程序使用LINQ到XML的经验,因此它的接口对我来说并不陌生,但我对内部如何操作一无所知。现在,我对LINQ提供程序的工作原理(实现)有了一些了解 IQueryable IQueryProvider IQueryProvider )在 System.Xml.Linq

    通过观察LINQ到XML模型,我认为它是LINQ的一种非常独特的形式,因为LINQ查询和相关语法似乎对该技术不太完整,而且它似乎更多地基于可查询的DOM模型,该模型提供了许多有用的扩展方法。实际上,我首先想知道的是,LINQtoXML是否有一个标准意义上的查询提供程序(例如,LINQtoSQL),或者它本质上是一个带有扩展方法的框架,在此基础上可以使用LINQtoObject来促进使用。此外,我还想知道从XML代码到DOM层次结构的解析/转换是如何完成的 XDocument XmlDocument XmlReader 或者在加载时在后台解析和解释文档?

    1 回复  |  直到 15 年前
        1
  •  13
  •   driis    15 年前

    linqtoxml实际上就是linqtoobjects,用于表示XML的对象。因此,当您编写LINQ查询以从XDocument(例如)检索节点时,实际上只是调用返回IEnumerable的扩展方法<T>'s、 以及调用为IEnumerable定义的标准查询运算符<T>。

    这也被解释了 here .