引言
LINQ to XML 使用最新的 .NET Framework 语言功能,相当于更新的和重新设计的文档对象模型 (DOM) XML 编程接口。
在当今的web开发过程中xml被经常使用(有用来存储小数据的;有用来数据传输的;也有用来做配置的)。对于很少接触xml的朋友一开始都比较怕操作xml(本人以前就是很怕操作xml),本文将教你如何使用linq to xml 轻松而简单地获取值和属性。希望看完本文的朋友以后不再惧怕操作xml。而在linq to xml 没有出现之前,我们通常使用XmlDocument/XmlNode来读值和属性,如兴趣的朋友可以看看下面几篇文章
正文
例如我们有以下xml内容(保存为books.xml):
<?xml version="1.0" encoding="utf-8" ?>
<Books>
<Book>
<Subject ID="1">
Head First 设计模式
</Subject>
<Content>
Head First 设计模式中文版
</Content>
</Book>
<Book>
<Subject ID="2">
C# 高级编程第5版
</Subject>
<Content>
C# 高级编程第5版
</Content>
</Book>
<Book>
<Subject ID="3">
C# 入门手册
</Subject>
<Content>
C# 入门手册
</Content>
</Book>
</Books>
使用linq to xml 实现获取subject的值及属性ID。
var books = from nodes in XElement.Load("books.xml").Elements("Book") select nodes;
if (books != null)
{
foreach (var b in books)
{
listBox1.Items.Add(b.Element("Subject").Attribute("ID").Value + ":" + b.Element("Subject").Value.Trim());
}
}
运行代码,效果图如下:
注:1.引用using System.Xml.Linq;
2.XElement.Load注意路径是否正确
Linq to xml VS xPath(来自http://msdn.microsoft.com/zh-cn/library/bb675156.aspx)
LINQ to XML 查询包含更多功能并且比 XPath 表达式的功能强大得多。
编译器能够捕捉许多查询错误。
相比之下,LINQ to XML 查询生成的投影是强类型。
使用 LINQ to XML 中 XPath 功能的 XPath 查询的执行性能比 LINQ to XML 查询低。
结束
文章很短,希望对各位有帮助。最后欢迎各位拍砖!