Unity进阶-数据持久化XML
XML概述
1.XML说明:可扩展标记语言,XML是国际通用的,它是用来传输和存储数据的一种文本特殊格式,后缀名一般为.xml,xml是一种树形结构;
XML文件格式
XML基本语法
1.编码格式:不同的字符,在内存中的二进制是不一样的,每一个字符对应一个数字,不同的编码格式字符对应的二进制是不一样的,否则会出现乱码;
2.注释:;
3.固定语法:;
4.基本语法:<元素标签>元素内容</元素标签>,多层嵌套包裹,形成树形结构,如下规则
- 每个元素都必须有关闭标签;
- 元素命名规则基本遵照C#中变量名命名规则;
- XML标签对大小写敏感;
- XML文档必须有根元素
- 特殊的符号应该用实体引用
- < — < 小于
- > — >大于
- & — &和号
- &apos — ‘ 单引号
- " — “ 引号
XML属性
1.属性语法:<元素标签 子元素名=”值” >元素内容</元素标签> or <元素标签 子元素名=”值” />
2.查语法错误:可以使用专门的xml软件,也可以在菜鸟验证对错;
C#中XML存取使用
unit中xml文件存取位置
1.只读不取:可以放在Resources或者StreamingAssets文件夹下,一般作为配置文件使用;
2.动态存储:放在Application.presistentDataPath路径下;
C#读取XML
1.C#读取XML的方法
//1.XmlDocument (把数据加载到内存中,方便读取)
//2.XmlTextReader (以流形式加载,内存占用更少,但是是单向只读,使用不是特别方便,除非有特殊需求,否则不会使用)
//3.Linq (以后专门讲Linq的时候讲)
//使用XmlDocument类读取是较方便最容易理解和操作的方法
2.读取API
//1.读取XML文件
//XmlDocument xml = new XmlDocument();
//读取文本方式1-xml.LoadXml(先用资源加载出来为TextAsset文件,再传入xml文本字符串)
//读取文本方式2-xml.Load(传入路径)
//2.读取元素和属性
//获取单个节点 : XmlNode node = xml.SelectSingleNode(节点名)
//获取多个节点 : XmlNodeList nodeList = xml.SelectNodes(节点名)
//获取节点元素内容:node.InnerText
//获取节点元素属性:
//1.item.Attributes["属性名"].Value
//2.item.Attributes.GetNamedItem("属性名").Value
//通过迭代器遍历或者循环遍历XmlNodeList对象 可以获取到各单个元素节点
C#存储XML
1.Unity推荐储存
//注意:存储xml文件 在Unity中一定是使用各平台都可读可写可找到的路径
// 1.Resources 可读 不可写 打包后找不到 ×
// 2.Application.streamingAssetsPath 可读 PC端可写 找得到 ×
// 3.Application.dataPath 打包后找不到 ×
// 4.Application.persistentDataPath 可读可写找得到 √
2.C#存取
//2.存储xml关键类
//XmlDocument 文件
// 创建节点 CreateElement()
// 创建固定内容方法 CreateXmlDeclaration()
// 添加节点 AppendChild()
// 保存 Save()
//XmlDeclaration 版本
//XmlElement 元素节点
// 设置属性方法SetAttribute()
//3.修改
//RemoveChild()移除节点
//可以通过 /的形式 来表示 子节点的子节点
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 雪夜の自我救赎!
评论
ValineDisqus