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操作

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

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

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

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

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

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

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

【编辑推荐】

  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:15:20

LINQ查询

2009-09-10 14:37:57

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:30:32

LINQ to XML

2009-01-04 16:58:48

LINQ to XMLLINQXML

2009-09-14 10:35:15

Linq内部执行原理

2009-09-09 13:39:05

Linq用户定义函数

2009-09-14 16:41:23

LINQ To XML

2009-09-14 16:46:15

LINQ to XML

2011-07-26 13:58:17

LINQ

2009-09-16 16:52:50

LINQ to XML

2009-09-16 15:33:22

LINQ to XML

2009-09-16 09:56:42

LINQ to SQL

2009-09-17 09:20:34

Linq和dLinq区

2009-09-08 16:20:12

LINQ to SQL
点赞
收藏

51CTO技术栈公众号