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

ASP.NET
asp.net实现C#代码加亮显示
如何显示在线人数和所在位置
ASP.net生成文字图片
ASP.NET提供文件下载函数
一个简单的ASP.NET Forms 身份认证
在ASP.NET中实现多文件上传
asp.net 2.0中使用sitemapDATAsource做页面导航
通过ASP.net程序创建域帐户故障
为ASP.NET封装的SQL数据库访问类
在ASP.NET中跟踪和恢复大文件下载
SQL存储过程在.NET数据库中的应用
对“学号”、“身份证”的数字分析
把.NET程序部署到没有安装.NET Framwork的机器上
ASP.NET中同时支持简体和繁体中文
几十个ASP.NET性能优化的常用方法
.NET环境下五种邮件发送解决方案
.NET开发中正则表达式中BUG一例
.NET反射、委托技术与设计模式
.net中Windows窗体间的数据交互
ADO.NET访问Oracle 9i存储过程(上)

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-28   浏览: 68 ::
收藏到网摘: 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对象树

待续!