博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
XML文件的写,集合XML序列化(写)。XML文件的读,递归遍历
阅读量:5065 次
发布时间:2019-06-12

本文共 3878 字,大约阅读时间需要 12 分钟。

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 = "李可";23 xxingming.Value = "李可";24 xxingbie.Value = "男";25 xgender.Value = "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
list = new List
//集合初始化器可以省去()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
));26 //序列化的对象和目的文件流27 serializer.Serialize(file, list);28 }29 }30 }31 }

男女对应的unicode代码30007,22899

 

取XML文档;

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

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

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

1 namespace W_R_XML_Model 2 { 3     class Program 4     { 5         static void Main(string[] args) 6         {
//获得文档 7 XDocument xDocument = XDocument.Load("xmllianxi.xml"); 8 //获得该文档的根节点 9 XElement xroot= xDocument.Root;10 // 将根节点带入遍历函数11 fun(xroot);12 Console.ReadKey();13 }14 public static void fun(XElement eles)15 {
//eles.elements一个节点的下的节点集合,并一个一个查看,比如根节点下的几个节点16 foreach (var eleVar in eles.Elements())17 {
//如果这些集合元素还有子节点hasElements,则继续将此几点递归查询,直到没有子节点18 if (eleVar.HasElements)19 { 20 fun(eleVar);21 }22 else23 {24 Console.WriteLine(eleVar.Value);25 }26 }27 }28 }

转载于:https://www.cnblogs.com/leee/p/4244549.html

你可能感兴趣的文章
Codeforces 620E(线段树+dfs序+状态压缩)
查看>>
Windows7中双击py文件运行程序
查看>>
Market entry case
查看>>
css3动画属性
查看>>
Mongodb 基本命令
查看>>
控制文件的备份与恢复
查看>>
PHP的SQL注入技术实现以及预防措施
查看>>
软件目录结构规范
查看>>
mysqladmin
查看>>
解决 No Entity Framework provider found for the ADO.NET provider
查看>>
设置虚拟机虚拟机中fedora上网配置-bridge连接方式(图解)
查看>>
[置顶] Android仿人人客户端(v5.7.1)——人人授权访问界面
查看>>
Eclipse 调试的时候Tomcat报错启动不了
查看>>
ES6内置方法find 和 filter的区别在哪
查看>>
Android实现 ScrollView + ListView无滚动条滚动
查看>>
java学习笔记之String类
查看>>
UVA 11082 Matrix Decompressing 矩阵解压(最大流,经典)
查看>>
jdk从1.8降到jdk1.7失败
查看>>
硬件笔记之Thinkpad T470P更换2K屏幕
查看>>
iOS开发——缩放图片
查看>>