当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > LINQ学习笔记:LINQ to XML

ASP.NET
Asp.Net 通用数据操作类 (附通用数据基类)
asp.net汉字转拼音和获取汉字首字母的代码
asp.net 多字段模糊查询代码
OpenCms 带分页的新闻列表
URLRewriter最简单入门介绍 URLRewriter相关资源
asp.net Repeater取得CheckBox选中的某行某个值
asp.net清空Cookie的两种方法
asp.net一些很酷很实用的.Net技巧
asp.net生成高质量缩略图通用函数(c#代码),支持多种生成方式
asp.net TripleDES加密、解密算法
Asp.net中防止用户多次登录的方法
asp.net Repeater取得CheckBox选中的某行某个值的c#写法
asp.net DataGridView导出到Excel的三个方法[亲测]
C#,winform,ShowDialog,子窗体向父窗体传值
asp.net学习中发现的比较完整的流程
ASP.net 页面被关闭后,服务器端是否仍然执行中?
asp.net Context.Handler 页面间传值方法
asp.net xml序列化与反序列化
asp.net实例代码protected override void Render(HtmlTextWriter writer)
asp.net(c#)捕捉搜索引擎蜘蛛和机器人

ASP.NET 中的 LINQ学习笔记:LINQ to XML


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-28   浏览: 118 ::
收藏到网摘: n/a

LINQ to 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命名空间下.

架构概貌

考虑以下的XML文件

 1: <?xml version="1.0" encoding="utf-8" standalone="yes"?>
 2: <customer id="123" status="archived">
 3: <firstname>Joe</firstname>
 4: <lastname>Bloggs</lastname>
 5: </customer>

对于所有的XML文件, 我们首先定义一个声明, 然后定义一个root元素, 它的名称是customer. customer元素包含有两个属性, 并各自有名称(id和status)以及对应值(”123″和”archived”). customer还拥有两个子元素, firstName和lastName, 它们还包含了各自的简单文本内容(”Joe”和”Bloggs”).

所有的这些构件–声明,元素,属性,值以及文本内容, 都可以用一个类来展现. 如果这样的一个类型拥有集合属性来存储子内容的话, 我们可以聚合一棵对象树来描述一个文档. 这被称为文档对象模型, 即DOM.

LINQ to XML包含两个内容:

  1. 一个XML DOM, 我们称它为X-DOM
  2. 一系列附加的查询操作符

正如你可能期待的那样, X-DOM的组成类型包括像XDocument, XElement以及XAttribute. 有趣的是, X-DOM的类型并不依赖于LINQ–在没有编写任何LINQ查询的情况下你依然可以加载, 实例化, 更新以及保存一个X-DOM.

相反的, 你能够使用LINQ去查询一个DOM并创建一个老式的W3C兼容的类型. 然而, 过程可能会令人沮丧并且会有一定的限制. 一个区别(与W3C DOM比)的特征是XDOM是LINQ友好的, 这意味着:

  • 它拥有一些方法去处理IEnumerable序列
  • 可以通过LINQ去构建一棵XDOM对象树

待续!