- 什么是xml文件?
- xml文件的结构
- 如何读写xml文件
xml文件是一种可拓展标记语言,由于简单易用,常被应用程序用于保存数据,unity也是如此,在我们需要控制读写用户的存档时,除了unity自带的PlayerPrefs或者是json,最常用到的就是xml文件,本篇 文章详细介绍unity(c#)中如何操控xml文件
xml文件的结构先来看看一个完整的xml文件长什么样
5 man 10 woman 15 woman
一、文档声明:从文档可见,第一行的""为xml文件的声明,意思是文档符合xml1.0规范,默认编码为UTF-8
二、根节点:这里的
三、元素:示例中10即为xml中的元素,和分别为开始标签和结束标签,10为元素的内容(注:xml的标签区分大小写,如写成和则无法识别)
四:属性:文档示例"
大致介绍完xml文件,现在来看看如何在unity中读写xml文件(后面使用的示例还是上面的文档)
- C#要读写xml文件,首先要引用System.Xml
using System.Xml;
- 用unity的Resources.Load加载文件
TextAsset xmlFile = Resources.Load(path); //加载path路径下的xml文件内容 XmlDocument document = new XmlDocument(); //创建xml文件的变量 document.LoadXml(xmlFile.text); //让xml文件变量读取xmlFile内的文本
- 解析xml,先获取根节点下的所有子节点
XmlNodeList nodeList = document.SelectSingleNode("student").ChildNodes; //将student节点的子节点加入至nodeList
- 将nodelist下的某个子节点转化成xml元素,就可以进行读写了
XmlElement elementStudent = (XmlElement)nodeList[num]; //子节点转化为元素
elementStudent.GetAttribute("name"); //获取元素的name属性,如果上一行num为0,则这里返回的是"椎名"
elementStudent.InnerText //获取元素的内容
- 完整代码
using UnityEngine;
using System.Xml;
public class XmlTest : MonoBehaviour
{
private void Start()
{
TextAsset xmlFile = Resources.Load("xml");
XmlDocument document = new XmlDocument();
document.LoadXml(xmlFile.text);
XmlNodeList nodeList = document.SelectSingleNode("student").ChildNodes;
XmlElement elementStudent = (XmlElement)nodeList[0];
Debug.Log(elementStudent.GetAttribute("name"));
foreach (XmlElement element in elementStudent.ChildNodes)
{
Debug.Log(element.InnerText);
}
}
}
- 将文章开头的完整xml文档放在unity中Resources文件夹里,然后将上面的代码随便挂在一个物体上,运行游戏
可以发现成功将student1的属性"name"和student1中的age和sex这两个元素的内容打印出来了
ok,关于如何unity读写xml文件就介绍到这里,感谢大家的阅读。
如果对unity开发感兴趣,可以加入我们的交流群共同探讨!!
群号:385075578
个人QQ:792006305



