首页 > 代码库 > XML文件的写,集合XML序列化(写)。XML文件的读,递归遍历

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,不过先newXAttribute18             xxuesheng.Add(xxingming,xxingbie,xgender);19             xbanji.Add(xxuesheng);20             xx.Add(xbanji);21             //为节点赋值 .value22             //xxuesheng.Value = "http://www.mamicode.com/李可";23             xxingming.Value = http://www.mamicode.com/"李可";24             xxingbie.Value = http://www.mamicode.com/"";25             xgender.Value = http://www.mamicode.com/"23";26             //为节点添加属性,先创建属性XAttribute27             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 Program12     {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

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

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