XML文件的写,集合XML序列化(写)。XML文件的读,递归遍历

XML文件:必须要有一个节点。检验xml文件,可以用浏览器打开,能打开表示对,否则错。

处理方法:

DOM:XmlDocument文档对象模型

Sax(事件驱动,XmlReader)

XmlSerializer(序列化):可以序列化一个类,一个泛型集合。

Linq to XML:主要用到类:Xelement XDocument XAttribute    using System.Xml.Linq;

一个XML文件:

学校,班级,学生(性别,年龄,年龄)

 1 namespace W_R_XML_Model
 2 {
 3     class Program
 4     {
 5         static void Main(string[] args)
 6         {//创建文档
 7             XDocument xdoc=new XDocument();
 8             //此文档必须包含一个根节点,节点名为()内的名字,并不是变量名。
 9             XElement xx=new XElement("xuexiao");
10             xdoc.Add(xx);
11             //创建节点
12             XElement xbanji=new XElement("banji");
13             XElement xxuesheng=new XElement("xuesheng");
14             XElement xxingming=new XElement("xingming");
15             XElement xxingbie=new XElement("xingbie");
16             XElement xgender=new XElement("gender");
17             //根据哪些节点在哪个节点下,添加节点.同一级别的节点可以以数组形式一块添加到父节点 add,添加属性也是add,不过先newXAttribute
18             xxuesheng.Add(xxingming,xxingbie,xgender);
19             xbanji.Add(xxuesheng);
20             xx.Add(xbanji);
21             //为节点赋值 .value
22             //xxuesheng.Value = "李可";
23             xxingming.Value = "李可";
24             xxingbie.Value = "男";
25             xgender.Value = "23";
26             //为节点添加属性,先创建属性XAttribute
27             XAttribute xuexiaoAttribute=new XAttribute("id",00001);
28             xx.Add(xuexiaoAttribute);
29             XAttribute banjiAttribute=new XAttribute("id",02);
30             xbanji.Add(banjiAttribute);
31             XAttribute xueshengAttribute=new XAttribute("id",024);
32             xxuesheng.Add(xueshengAttribute);
33
34             //保存文件
35             xdoc.Save("lizi.xml");
36         }
37     }
38 }

序列化(把泛型集合写一个xml文件):常常导出数据库为XMl文档的方法,可以先建立一个集合。但是此种方法,一次性将所有数据添加到list内存,数据大的时候就用XmlReader,和XmlWriter。

 1 namespace W_R_XML_Model
 2 {
 3     //先标记,再public
 4     [Serializable]
 5     public class onePerson
 6     {
 7         public string Name { get; set; }
 8         public int Age { get; set; }
 9         public char Gender { get; set; }
10     }
11     class Program
12     {
13         static void Main(string[] args)
14         {
15             List<onePerson> list = new List<onePerson>//集合初始化器可以省去()
16             {
17                 new onePerson {Name = "李可", Age = 18, Gender = ‘男‘},//对象初始化器可以省去()
18                 new onePerson {Name = "小翠", Age = 20, Gender = ‘女‘},
19                 new onePerson {Name = "小红", Age = 17, Gender = ‘女‘}
20             };
21             //把这个泛型集合序列化成XML格式的文件
22             using (FileStream file = new FileStream("lisxm.xml", FileMode.Create, FileAccess.Write))
23             {
24                 //找一个人来序列化 参数 序列化的类型,
25                 XmlSerializer serializer = new XmlSerializer(typeof(List<onePerson>));
26                 //序列化的对象和目的文件流
27                 serializer.Serialize(file, list);
28             }
29         }
30     }
31 }

男女对应的unicode代码30007,22899

取XML文档;

获得文档。XDocment.Load(路径)

获得根节点下的所有子节点。Xelement.root

循环子节点,获得子节点下的子节点。

时间: 2024-08-10 22:10:00

XML文件的写,集合XML序列化(写)。XML文件的读,递归遍历的相关文章

net中序列化读写xml

参考http://www.cnblogs.com/fish-li/archive/2013/05/05/3061816.html 我们可以直接使用XmlTextReader.XmlDocument.XPath来取数XML中的数据, 也可以使用LINQ TO XML或者反序列化的方法从XML中读写数据,我各人比较喜欢序列化.反序列化方法. 1.默认情况下,不添加任何属性标签的对象属性都序列化为一个节点.如下一个Student对象序列化结果如下: public class Student { pub

集合、深浅拷贝、文件操作(读、写、追加)函数初识(参数)

小数据池 #int ==比较数值 is 比较内存地址 id 测试内存地址 #str 不能含有特俗字符 单个元素*数字,不能超过21 i1 = 'a'*20 i = 'a'*20 id一样 i1 = 'a'*21 i = 'a'*21 id不一样 编码 ascii   英文的数字,字母,特殊字符 字节 8位表示一个字节 字符 内容的最小组成单位 abc  a一个字符 中国 中  一个字符 unicode :万国码 期初 两个字节,表示一个字符2**16不够用 升级 四个字节,表示一个字符2**32

[.net 面向对象程序设计进阶] (11) 序列化(Serialization)(三) 通过接口IXmlSerializable实现XML序列化及XML通用类

[.net 面向对象程序设计进阶] (11) 序列化(Serialization)(三) 通过接口IXmlSerializable实现XML序列化及XML通用类 本节导读:本节主要介绍通过序列化接口IXmlSerializable实现XML序列化和反序列化,整理了XML基础操作及序列化的通用类(包括XML及节点的基础读写操作,XML到DataSet\DataTable互转换操作,XML序列化及反序列化通用方法等). 读前必备: A.类和类的实例 [.net 面向对象编程基础]  (9) 类和类的

在.net中序列化读写xml方法的总结

在.net中序列化读写xml方法的总结 阅读目录 开始 最简单的使用XML的方法 类型定义与XML结构的映射 使用 XmlElement 使用 XmlAttribute 使用 InnerText 重命名节点名称 列表和数组的序列化 列表和数组的做为数据成员的序列化 类型继承与反序列化 反序列化的实战演练 反序列化的使用总结 排除不需要序列化的成员 强制指定成员的序列化顺序 自定义序列化行为 序列化去掉XML命名空间及声明头 XML的使用建议 XML是一种很常见的数据保存方式,我经常用它来保存一些

C#_在.net中序列化读写xml方法的总结

阅读目录 开始 最简单的使用XML的方法 类型定义与XML结构的映射 使用 XmlElement 使用 XmlAttribute 使用 InnerText 重命名节点名称 列表和数组的序列化 列表和数组的做为数据成员的序列化 类型继承与反序列化 反序列化的实战演练 反序列化的使用总结 排除不需要序列化的成员 强制指定成员的序列化顺序 自定义序列化行为 序列化去掉XML命名空间及声明头 XML的使用建议 XML是一种很常见的数据保存方式,我经常用它来保存一些数据,或者是一些配置参数. 使用C#,我

php xml常用函数的集合(比较详细)

1.DOM 函数 a.DOMDocument-<load()作用:加载xml文件用法:DOMDocument-<load( string filename )参数:filename,xml文件:返回:如果成功则返回 TRUE,失败则返回 FALSE. b.DOMDocument-<loadXML()作用:加载xml代码用法:DOMDocument-<loadXML( string source )参数:source xml代码:返回:如果成功则返回 TRUE,失败则返回 FALSE

(转)在.net中序列化读写xml方法的总结

阅读目录 开始 最简单的使用XML的方法 类型定义与XML结构的映射 使用 XmlElement 使用 XmlAttribute 使用 InnerText 重命名节点名称 列表和数组的序列化 列表和数组的做为数据成员的序列化 类型继承与反序列化 反序列化的实战演练 反序列化的使用总结 排除不需要序列化的成员 强制指定成员的序列化顺序 自定义序列化行为 序列化去掉XML命名空间及声明头 XML的使用建议 XML是一种很常见的数据保存方式,我经常用它来保存一些数据,或者是一些配置参数. 使用C#,我

如果写一个android支持的html文件

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/199

序列化之XML序列化技术

优点: 1.可读性比较好, 2.有利于调试 3.XML序列化与语言无关 缺点: 1.序列化化后码流比较大,[主要是因为使用标签对来表示数据] 2.效率不高 使用场景: 1.对性能要求不高,且QPS较低的企业级内部系统之间的数据交换的场景 2.由于与语言无关,因此,可以使用到异构系统之间的数据交换协议,如WebService相关协议 使用方法: 序列化主要使用了XStream类的toXML(obj)方法,将obj对象转换为String类型,然后,再转换成字节数组. 反序列化主要使用到了XStrea