LINQ to XML是很前沿的一项技术,他的功能十分的强大,很多人对此可能还不是很熟悉,所以笔者来向大家介绍一下。
LINQ to XML 提供使用 .NET 语言集成查询 (LINQ) Framework 的内存中 XML 编程接口。LINQ to XML 使用***的 .NET Framework 语言功能,相当于更新的和重新设计的文档对象模型 (DOM) XML 编程接口。
.NET Framework提供了大量的API用于处理XML数据. 从Framework 3.5开始, 对于处理常规XML文档的***选择将是LINQ to XML. LINQ to XML包含一个轻量级的LINQ友好的XML文档对象模型, 以及一系列附加的查询操作符.。
在多数场景中, 它可以被当中是先前的W3C兼容的DOM模型的替换(即XmlDocument). LINQ to XML DOM设计极其优良并且可以高效执行. 即使没有LINQ, LINQ to XML DOM作为对低级XmlReader和XmlWriter的门面(Facade)包装也是非常有价值的.
所有的LINQ to XML类型都定义在System.Xml.Linq命名空间下.
LINQ to XML架构概貌
考虑以下的XML文件
- "1.0" encoding="utf-8" standalone="yes"?>
"123" status="archived"> Joe Bloggs
对于所有的XML文件, 我们首先定义一个声明, 然后定义一个root元素, 它的名称是customer. customer元素包含有两个属性, 并各自有名称(id和status)以及对应值(”123″和”archived”). customer还拥有两个子元素, firstName和lastName, 它们还包含了各自的简单文本内容(”Joe”和”Bloggs”).
所有的这些构件–声明,元素,属性,值以及文本内容, 都可以用一个类来展现. 如果这样的一个类型拥有集合属性来存储子内容的话, 我们可以聚合一棵对象树来描述一个文档. 这被称为文档对象模型, 即DOM.
LINQ to XML包含两个内容:
一个XML DOM, 我们称它为X-DOM
一系列附加的查询操作符
正如你可能期待的那样, X-DOM的组成类型包括像XDocument, XElement以及XAttribute. 有趣的是, X-DOM的类型并不依赖于LINQ–在没有编写任何LINQ to XML查询的情况下你依然可以加载, 实例化, 更新以及保存一个X-DOM.
相反的, 你能够使用LINQ去查询一个DOM并创建一个老式的W3C兼容的类型. 然而, 过程可能会令人沮丧并且会有一定的限制. 一个区别(与W3C DOM比)的特征是XDOM是LINQ友好的, 这意味着:
它拥有一些方法去处理IEnumerable序列,可以通过LINQ to XML去构建一棵XDOM对象树 。
以上就是对LINQ to XML的简单阐述。
【编辑推荐】