linq to xml
我的上一篇文章描述了用普通方法实现对xml文件的基本操作,感谢各位园友给我提的每一个建议,大家主要在说:用Linq去实现对xml的操作更加方便简洁,于是乎我就现学习了一下Linq to xml,由于是刚刚接触Linq,理解肯定不会很深,所以请各位园友不吝赐教,有建议尽管说,在此先谢过大家啦~
LINQ to XML 为创建 XML 元素提供了一种称为“函数构造”的有效方式。函数构造是指在单个语句中创建 XML 树的能力。
启用函数构造的 LINQ to XML 编程接口有几个重要功能:
XElement构造函数可以对内容采用多种类型的参数。例如,可以传递另一个 XElement 对象,该对象将成为一个子元素。可以传递一个 XAttribute 对象,该对象将成为该元素的一个属性。也可以传递任何其他类型的对象,该对象将转换为字符串并成为该元素的文本内容。
XElement 函数采用类型为 Object 的 params 数组,因此可以向该构造函数传递任意数目的对象。 这使您可以创建具有复杂内容的元素。如果对象实
现 IEnumerable<T>,则枚举对象中的集合,并添加集合中的所有项。
如果集合包含 XElement 或 XAttribute 对象,则单独添加集合中的每一项。这一功能很重要,因为它允许您将 LINQ 查询的结果传递给构造函数。
本文的主要模块为:
① :生成xml文件
② :遍历xml文件的节点信息
③ :修改xml文件的节点信息
④ :向xml文件添加节点信息
⑤ :删除指定xml文件的节点信息
①:【生成xml文件】假设我们想生成这样的一个xml文件结构,如下所示:
<?xml version="1.0" encoding="utf-8" ?>
- <Users>
- <User ID="111111">
<name>EricSun</name>
<password>123456</password>
<description>Hello I'm from Dalian</description>
</User>
- <User ID="222222">
<name>Ray</name>
<password>654321</password>
<description>Hello I'm from Jilin</description>
</User>
</Users> 用我的上篇文章也能够很容的实现,不过下面我要用Linq to xml的方式实现生成这个xml文件,请看下面代码:
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Xml.Linq; 6 7 namespace OperateXmlLinq 8 { 9 class Program 10 { 11 static void Main(string[] args) 12 { 13 //xml文件存储路径 14 string myXmlPath = "E:\\MyUsers.xml"; 15 //创建xml文件 16 GenerateXmlFile(myXmlPath); 17 } 18 19 private static void GenerateXmlFile(string xmlPath) 20 { 21 try 22 { 23 //定义一个XDocument结构 24 XDocument myXDoc = new XDocument( 25 new XElement("Users", 26 new XElement("User", new XAttribute("ID", "111111"), 27 new XElement("name", "EricSun"), 28 new XElement("password", "123456"), 29 new XElement("description", "Hello I'm from Dalian") 30 ), 31 new XElement("User", new XAttribute("ID", "222222"), 32 new XElement("name", "Ray"), 33 new XElement("password", "654321"), 34 new XElement("description", "Hello I'm from Jilin") 35 ) 36 ) 37 ); 38 //保存此结构(即:我们预期的xml文件) 39 myXDoc.Save(xmlPath); 40 } 41 catch (Exception ex) 42 {