Unity3D学习之数据持久化——XML


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 读取

在这里插入图片描述

相关推荐

  1. Unity数据持久—Json存档

    2024-01-23 09:02:03       16 阅读
  2. Unity 数据持久——persistentDataPath储存路径

    2024-01-23 09:02:03       16 阅读
  3. Redis-3 数据持久

    2024-01-23 09:02:03       7 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-23 09:02:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-23 09:02:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-23 09:02:03       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-23 09:02:03       20 阅读

热门阅读

  1. 【力扣每日一题】力扣670最大交换

    2024-01-23 09:02:03       34 阅读
  2. 数据结构(更新至链表)

    2024-01-23 09:02:03       30 阅读
  3. [EFI]ThinkBook 13s G3电脑 Hackintosh 黑苹果efi引导文件

    2024-01-23 09:02:03       28 阅读
  4. DLL注入技术

    2024-01-23 09:02:03       33 阅读
  5. 创建Servlet的三种方式

    2024-01-23 09:02:03       34 阅读
  6. 如何在前端优化中减少页面加载时间?

    2024-01-23 09:02:03       35 阅读
  7. CF1893C Freedom of Choice 题解

    2024-01-23 09:02:03       30 阅读
  8. spring和springboot、springMVC有什么区别?

    2024-01-23 09:02:03       28 阅读
  9. 网安防御保护入门

    2024-01-23 09:02:03       22 阅读