LINQ to XML操作剖析

开发 后端
这里介绍LINQ to XML操作,LINQ to XML提供了为丰富并且简洁的类来实现对XML的操作。相对于种类繁多的DOM模型的XML类库而言,LINQ的类使我们的学习曲线变得平滑并且还能达到相同的效果。

学习LINQ to XML时,经常会遇到LINQ to XML操作问题,这里将介绍LINQ to XML操作问题的解决方法。

LINQ to XML操作

XElement xelem = XElement.Load(@"example.xml");  
// 查询节点名为Item,并返回它们的PartNumber属性值的集合  
IEnumerable<string> partNos = from item in xelem.Descendants("Item")  
Select (string)item.Attribute("PartNumber");  
foreach (string str in partNos)  
Console.WriteLine(str);  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.

在.NET3.5中,框架对LINQ to XML操作进行了扩展,这个扩展就是LINQ to XML。在名称空间System.Xml.LINQ下。从以上的代码我们可以看到增加了一个新的XElement对象。我们通过XElement.Load方法来装载XML文档,而不是传统的DOM模式XmlDocument.Load。

相比较于W3C的DOM文档结构来说,LINQ to XML为我们提供了一种更方便的创建一个XML文档的方式。

XElement contacts =  
new XElement("Contacts",  
new XElement("Name", "Ice Lee"),  
new XElement("Phone", "010-876546",  
new XAttribute("Type", "Home")),  
new XElement("Phone", "425-23456",  
new XAttribute("Type", "Work")),  
new XElement("Address",  
new XElement("Street", "ZhiXinCun"),  
new XElement("City", "Beijin")  
)  
);  
//输出结果:  
<? Xml version="1.0" encoding="utf-8"?> 
<Contacts> 
<Name>Ice Lee</Name> 
<Phone Type="Home">010-876546</Phone> 
<Phone Type="Work">425-23456</Phone> 
<Address> 
<Street>ZhiXinCun</Street> 
<City>Beijing</City> 
</Address> 
</Contacts>  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.

LINQ to XML提供了为丰富并且简洁的类来实现对XML的操作。相对于种类繁多的DOM模型的XML类库而言,LINQ的类使我们的学习曲线变得平滑并且还能达到相同的效果。LINQ to XML解决了DOM模型中的几个比较不方便的问题,如修改节点名字的问题;同时也抛弃了一些看起来很强大但是很不常用的东西,如实体和实体引用。这样使得LINQ to XML操作速度更快并且更方便。以下的几个例子将展示给大家LINQ to XML如何完成节点名称修改,增加和删除的效果。

首先,我们看一下添加一个节点到XML中是这么样实现的:

XElement xelem = XElement.Load(@"example.xml");  
XElement newnewXelem = new XElement("NewNode", "This is new node");  
xelem.Add(newXelem); 
  • 1.
  • 2.
  • 3.

【编辑推荐】

  1. LINQ Customers类概括
  2. LINQ查询操作全面分析
  3. LINQ to SQL的Table剖析
  4. Linq数据分组全面描述
  5. LINQ查询基础概括
责任编辑:佚名 来源: IT168
相关推荐

2009-09-14 15:12:40

LINQ to XML

2011-07-22 08:43:08

XML

2009-09-14 10:13:02

LINQ查询操作

2009-09-17 13:54:26

LINQ to XML

2009-09-09 14:40:43

Linq to sql

2009-09-09 16:21:31

Linq使用sqlme

2009-09-17 13:15:20

LINQ查询

2009-09-10 14:37:57

LINQ匿名类型

2009-01-04 16:58:48

LINQ to XMLLINQXML

2009-09-17 13:30:32

LINQ to XML

2009-09-16 16:52:50

LINQ to XML

2011-07-26 13:58:17

LINQ

2009-09-16 15:33:22

LINQ to XML

2009-09-18 17:17:58

LINQ模型

2009-09-08 16:20:12

LINQ to SQL

2009-09-08 15:39:13

Linq使用Inser

2009-09-16 09:56:42

LINQ to SQL

2009-09-15 14:52:15

linq级联删除

2009-09-17 09:20:34

Linq和dLinq区

2009-09-14 16:41:23

LINQ To XML
点赞
收藏

51CTO技术栈公众号