1. LINQ to XML 简介web
1.1. 使用 LINQ 访问 XML
• 更好的操做 XML
• 支持语言集成查询
• 更方便、更快速、更简单、更智能的XML API编程
1.2. LINQ to XML
• LINQ to XML 是一种启用了 LINQ 的内存XML 编程接口,使用它,能够在 .NET
Framework 编程语言中处理XML。
• 它将 XML 文档置于内存中,这一点很像文档对象模型(DOM)。
• 它提供一种新的对象模型,这是一种更轻量的模型,使用也更方便,这种模型利用
了Visual C# 2008 在语言方面的改进。asp.net
2. LINQ to XML 类编程语言
2.1. XElement 类
• 它表示一个 XML 元素
• 能够使用该类
– 建立元素
– 更改元素内容
– 添加、更改或删除子元素
– 向元素中添加属性
– 以文本格式序列化元素内容
• 能够与 System.Xml 中的其余类(例如XmlReader、XmlWriter 和
XslCompiledTransform)进行互操做。函数
2.2. XAttribute 类
• 属性是与元素关联的名称/值对
• XAttribute 类表示 XML 属性
• 属性集合的LINQ 查询表达式与元素集合的LINQ 查询表达式看起来很是类似。spa
2.3. XDocument 类
• XDocument 类包含有效的 XML 文档所需的信息。其中包括XML 声明、处理指令和注释。
• 若是须要XDocument 类提供的特定功能,您只需建立XDocument 对象。在不少状况下,能够
直接使用Xelement。直接使用XElement 是一种比较简单的编程模型。
• XDocument 是从XContainer 派生的。所以,它能够包含子节点。可是,XDocument 对象只能有
一个子XElement 节点。这反映了XML 标准,即在 XML 文档中只能有一个根元素。.net
3. 使用LINQ to XMLcode
3.1. XElement 类功能
• 构造 XML 树
• 序列化 XML 树
• 经过轴方法检索XML 数据
• 查询XML 树
• 修改 XML 树orm
3.2. 构造 XML 树
• “函数构造”方法
–经过将查询结果用做 XElement 和 XAttribute对象构造函数的参数,实现了一种功能强大的
建立 XML 树的方法。
– 利用这种方法,开发人员能够方便地将XML树从一种形状转换为另外一种形状。
• 分析字符串
• 从文件加载对象
3.3. 序列化 XML 树
• XML 树能够序列化为
–字符串
– File
– TextWriter
– XmlWriter
– XmlReader
3.4. LINQ to XML 轴
3.5. 查询与转换 XML 树
• 基本查询
• 使用LINQ查询操做符查询
• 转换XML 格式
• 将集合、数据转换成XML
• 转换成其它数据格式
3.6. 修改 XML 树
• 内存中 XML 树修改与函数构造
• 向 XML 树中添加元素、属性和节点
• 修改XML 树中的元素、属性和节点
• 从XML 树中移除元素、属性和节点
• 维护名称/值对
• 更改整个XML 树的命名空间
4. 实现:生成RSS
NorthwindDataContext db = new NorthwindDataContext();
XElement rssRoot = new XElement("rss",
new XAttribute("version", "2.0"),
new XElement(“channel”,
new XElement("title", "My RSS Feed"),
new XElement("link", "http://weblogs.asp.net"),
new XElement("description", "Northwind Products Feed"),
from product in db.Products
orderby product.ProductName descending
select new XElement("item",
new XElement("title", product.ProductName),
new XElement("link", "p.aspx?id="+product.ProductID),
new XElement("description", "Supplier: " +
product.Supplier.CompanyName)
)
)
);
Response.Write(rssRoot.ToString());