文章目录
- 1. 前言
- 2. XML 基本语法
- 2.1 固定语法(重要)
- 2.2 注释
- 2.3 基本语法
- 2.4 基本规则
- 2.5 xml 属性
- 2.6 验证语法错误
- 2.7 C#对象和XML的手动转换
- 3. C#读取存储XML
- 3.1 创建xml
- 3.2 C# 读取xml文件
- 3.2.1 通过Resources文件进行读取
- 3.2.2 通过xml文件进行加载
- 3.3 C# 存储xml文件
- 3.3.1 存储在哪个文件夹
- 3.3.2 存储xml文件
- 3.4 C# 修改xml文件
- 4 XML 序列化
- 4.1 什么是序列化和反序列化
- 4.2 xml 序列化
- 4.3 自定义结点
- 5 xml 反序列化
- 5.1 判断文件是否存在
- 5.2 反序列化
- 6 IXmlSerializeable 接口(自定义xmlSerializeable类)
- 6.1 继承 IXmlSerializable
- 6.2 WriteXml函数
- 6.2.1 存属性
- 6.2.2 存结点
- 6.2.3 写包裹结点
- 6.3 ReadXml函数
- 6.3.1 读属性
- 6.3.2 读结点
- 6.3.3 读包裹节点
- 6.4 让dictionary支持序列化反序列化
- 6.4.1 序列化
- 6.4.2 反序列化
- 7 xml数据管理类
- 7.1 存储
- 7.2 读取
1. 前言


最终达到的效果



2. XML 基本语法
2.1 固定语法(重要)

2.2 注释

2.3 基本语法

树形结构

2.4 基本规则

2.5 xml 属性

属性通过空格隔开 属性名 = 引导包裹的内容

这两个代表的东西是一样的

2.6 验证语法错误
可以在菜鸟上使用xml验证器
xml验证器

2.7 C#对象和XML的手动转换



3. C#读取存储XML
3.1 创建xml

在Resources文件夹创建一个xml文件

把文件再复制到streamingAsserts
3.2 C# 读取xml文件
3.2.1 通过Resources文件进行读取


3.2.2 通过xml文件进行加载


获取根节点


遍历同名


3.3 C# 存储xml文件
3.3.1 存储在哪个文件夹
存储在 PersistentDataPath 可读可写

3.3.2 存储xml文件








3.4 C# 修改xml文件
先移除 再添加

两个方法得到子结点的子结点



4 XML 序列化
4.1 什么是序列化和反序列化

大概就是 把对象转化成可传输的字节顺序
4.2 xml 序列化







这种序列化不能存储 private protect ,只能存public
也可以存数组 和list


不支持字典的序列化
4.3 自定义结点





5 xml 反序列化

5.1 判断文件是否存在

5.2 反序列化

这里会有问题,如果对象初始化了值,再反序列时,不会覆盖初始化值了的属性。所以会出现重复读取
所以最好不要对类进行初始化,
6 IXmlSerializeable 接口(自定义xmlSerializeable类)


6.1 继承 IXmlSerializable
在需要序列化的类继承IXmlSerializable

需要实现三个函数

第一个函数直接返回null就行

在函数中可以自定义序列化 的规则
6.2 WriteXml函数
6.2.1 存属性


6.2.2 存结点


6.2.3 写包裹结点



6.3 ReadXml函数
6.3.1 读属性

6.3.2 读结点
方式1:



读到test1

读到test2

方式2:

6.3.3 读包裹节点

6.4 让dictionary支持序列化反序列化
自定义一个dictionary,让其继承dictionary和 IXMLserializable

6.4.1 序列化



6.4.2 反序列化



7 xml数据管理类


测试类

7.1 存储

7.2 读取




















