引言

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());
  }
}

运行代码,效果图如下:

【原创】C# Linq to XML

注: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 查询低。

结束
文章很短,希望对各位有帮助。最后欢迎各位拍砖!

相关文章:

  • 2022-12-23
  • 2021-09-18
  • 2021-06-01
  • 2021-12-21
  • 2021-10-01
  • 2021-10-04
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-05-17
  • 2021-08-10
  • 2021-06-20
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案