C#中的Linq to Xml详解
这篇文章主要介绍了C#中的Linq to Xml详解,本文给出转换步骤以及大量实例,讲解了生成xml、查询并修改xml、监听xml事件、处理xml流等内容,需要的朋友可以参考下
操作之前,需要引入 程序集和命名空间 System.Xml.Linq;
一、生成Xml
为了能够在结构有一定的组织,笔者建议大家新建一个控制台项目,并且新建一个CreateXml类(以下部分都属于该类中)。
并在其中写入以下属性:
代码如下:
public static String Path { get { String path = String.Format("{0}\\test.xml", Environment.CurrentDirectory); return path; } }
这句代码很好理解,就是为了下面我们示例的时候可以将xml保存到当前程序的运行路径下。
(以下的示例中不会包含Main方法中的写法,因为Main中仅仅只要调用该静态方法即可。)
1.创建简单的Xml
首先我们先练练手,创建一个简单的Xml并保存到一个文件中。
代码如下:
/// <summary> /// 创建简单的xml并保存 /// </summary> public static void CreateElement() { XDocument xdoc = new XDocument( new XDeclaration("1.0", "utf-8", "yes"), new XElement("root", new XElement("item", "1"), new XElement("item", "2") )); xdoc.Save(Path); }
很多学习过XML的人可以从结构就能够猜测出最终的xml的组织,而这也是linq to xml的优点之一。这句代码首先创建一个xml文档,并设置该xml的版本为1.0,,
采用utf-8编码,后面的yes表示该xml是独立的。下面就开始创建每个节点的,首先是Root节点,然后在Root节点中添加两个Item节点。
最终生成的Xml如下所示:
代码如下:
<?xml version="1.0" encoding="utf-8" standalone="yes"?> <root> <item>1</item> <item>2</item> </root>
2.创建注释
当xml有很多项时,我们就需要利用注释加以区别,通过linq to xml我们一样可以在其中添加注释。
代码如下:
/// <summary> /// 创建注释 /// </summary> public static void CreateComment() { XDocument doc = new XDocument( new XDeclaration("1.0", "utf-8", "yes"), new XComment("提示"), new XElement("item", "asd") ); doc.Save(Path); }
这里我们直接在版本信息的后面添加了一条注释。
最终的结果如下所示:
代码如下:
<?xml version="1.0" encoding="utf-8" standalone="yes"?> <!--提示--> <item>asd</item>
3.根据对象创建xml
很多时候我们都会将数组之类的类型转换成xml以便保存进永久性存储介质中,所以下面我们也简单的举了一个例子,将数组转换成xml。
代码如下所示:
代码如下:
/// <summary> /// 根据对象创建xml并保存 /// </summary> public static void CreateElementByObjects() { var s = Enumerable.Range(1, 10); XElement xele = new XElement( "Root", from item in s select new XElement("item", item.ToString()) ); xele.Save(Path); }
一开始的代码 var s = Enumerable.Radge(1,10)是从1开始递增,生成含有10项的数组,以便后面我们进行添加,有了这个数组之后,
我们通过简单的linq语句将数组转换成xml,添加到Root中。
保存之后的结果如下:
代码如下:
温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/47756.html