因为有些老项目还是用了XML来存取数据和存放相应的游戏配置。所以XML的读取还是需要重温一下。

XML文件相比于JSON而言,稍微复杂一点。而且现在基本上都倾向于用JSON,更加的轻量级。

Unity内置的API是支持解析XML的。

我们通过下面的一个例子来重温一下,Unity环境下XML的读取。

下面这个是我们要读取的XML的文件,该文件我们放在了UnityAsset目录下的Resources文件夹中,这样做是为了方便后期的读取。当然了,这个位置可以自定义在Unity目录下的任何文件夹下,只要我们读取的到。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<root><system_unlock id="1" group="" type="1" showExt="false" openType="1" /><system_unlock id="2" group="" type="1" showExt="false" openType="1" />
</root>

上面这个是一个比较常规的XML例子,是我们游戏的一个配置表,用XML写的。

然后我们就写代码来读取这份文件。

首先我们如果想要正常存储这个XML中的每一条Node的话就需要创建一个类。

public class SystemUnlock
{public int m_id;public string m_group;public int m_type;public bool m_showExt;public int m_openType;public SystemUnlock(string id,string group,string type,string showExt,string openType){m_id = int.Parse(id);m_group = group;m_type = int.Parse(type);m_showExt = bool.Parse(showExt);m_openType = int.Parse(openType);}public SystemUnlock(){}
}

我们对类的定义如上所示,通过一个构造方法,在构造方法里面转换类型。要知道XML读取出来的node全部都是string类型。转换成相应的类型,需要我们后期自己处理。在这里我们直接写到了构造方法中。

public class LoadXML : MonoBehaviour
{private List<SystemUnlock> m_systems = new List<SystemUnlock>();private void Start(){LoadFile();}void LoadFile(){XmlDocument xmlDoc = new XmlDocument();TextAsset xmlfile = Resources.Load<TextAsset>("1");if (xmlfile.text != null){Debug.Log(xmlfile.text);xmlDoc.LoadXml(xmlfile.text);XmlNodeList infoNodeList = xmlDoc.SelectSingleNode("root").ChildNodes;for (int i = 0; i < infoNodeList.Count; i++){SystemUnlock sys = new SystemUnlock(infoNodeList[i].Attributes["id"].Value, infoNodeList[i].Attributes["group"].Value, infoNodeList[i].Attributes["type"].Value, infoNodeList[i].Attributes["showExt"].Value, infoNodeList[i].Attributes["openType"].Value);m_systems.Add(sys);Debug.Log(sys.m_id);}}}
}

上面的方法,是一个读取XML并存储的一套业务逻辑。

在这个逻辑中,我们通过Resources读取XML文件,这里我们的XML文件命名为1.txt,在Resources里面读取是不需要加后缀的。所以这里读取成立。

读取完毕以后直接通过访问他们的子节点,将所有的变量读取出来并存储到我们临时创建的集合中。

到此,XML解析结束。

稍后我会将原工程上传到Git上。这样大家可以直接阅读源码。

Unity解析XML文件相关推荐

  1. Java jdom解析xml文件带冒号的属性

    Java jdom解析xml文件带冒号的属性 转载请标明出处: https://dujinyang.blog.csdn.net/article/details/99644824 本文出自:[奥特曼超人 ...

  2. python中利用lxml模块解析xml文件报错XMLSyntaxError: Opening and ending tag mismatch

    今天在代码中第一次使用lxml解析xml文件时出错了, XMLSyntaxError: Opening and ending tag mismatch: keyEffectiveDate line 2 ...

  3. java xml中的冒号_Java jdom解析xml文件带冒号的属性

    Java jdom解析xml文件带冒号的属性 如果xml文件解析带了冒号的属性,一般都是要特别处理,这里是命名空间,N年前遇到过一次忘记记录,后来也忘了,这次再记录下. 解决了,记录下,分享给大家,百 ...

  4. XML专题:使用NSXMLParser解析xml文件

    使用NSXMLParser解析xml文件 1. 设置委托对象,开始解析      NSXMLParser *parser = [[NSXMLParser alloc] initWithData:dat ...

  5. SAX解析XML文件

    就目前来说,有三种方式可以解析XML文件:DOM.SAX.StAX.DOM将整个XML文件加载到内存中,并构建出节点树:应用程序可以通过遍历节点树的方式来解析XML文件中的各个节点.属性等信息:这种方 ...

  6. Java--Dom解析XML文件

          之前写过几篇关于Java中解析XML文件的方法,不过,感觉不够简单,今天重写了一遍代码,用到的是方法是Dom,其中加入了日志记录功能--Log4j.       好了,不多说了,先把XMl ...

  7. 10. 解析XML文件(SAX/DOM/ElementTre)

    XML的全称是eXtensible Markup Language, 意为可扩展的标记语言, 是一种用于标记电子文件使其具有结构性的标记语言.以XML结构存储数据的文件就是XML文件,它被设计用来传输 ...

  8. Dom方法,解析XML文件

    Dom方法,解析XML文件的基本操作 1 package com.demo.xml.jaxp; 2 3 import java.io.IOException; 4 5 import javax.xml ...

  9. [转载]VC轻松解析XML文件 - CMarkup类的使用方法

    VC轻松解析XML文件 - CMarkup类的使用方法 VC解析XML文件的工具有很多,CMarkup, tinyXML,还有IBM的,MS的等等. 据说tinyXML很好,可能字符集问题,我编译不了 ...

  10. python读取xml标注坐标_遍历文件 创建XML对象 方法 python解析XML文件 提取坐标计存入文件...

    XML文件??? xml即可扩展标记语言,它可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言. 里面的标签都是可以随心所欲的按照他的命名规则来定义的,文件名为roi.xm ...

最新文章

  1. 利用Python进行数据分析(第2版)
  2. 超越ReLU却鲜为人知,3年后被挖掘:BERT、GPT-2等都在用的激活函数
  3. Java的jar文件安装成windows 服务
  4. python教程怎么抓起数据_介绍python 数据抓取三种方法
  5. riak文件服务器,Docker中文文档
  6. 被高中生物骗了这么多年,原来人体内细胞的DNA是有不同的?
  7. XML Tree Editor(树形视图XML编辑器) v0.1.0.35
  8. 大量删除MySQL中的数据
  9. 卧槽!全网最全编程学习网站汇总!还不赶快放到收藏夹里吃灰~
  10. 程序员(工作十几年)的创业血泪史,万字长文,与君共勉!
  11. 工作多少年,在哪个行业,可以拿到年薪50万+
  12. 猿猿趴架构实战--03 什么是架构
  13. 【oracle工具】plsqldev美化规则文件详细解释(关键字大写,标识符小写等规则)
  14. 十大畅销经济学类书籍
  15. 转 javascip学习笔记
  16. go mod拉取gitlab私有仓库代码问题最全总结
  17. tp5 微信支付sdk
  18. MCSD培训教程70-016 Microsoft Visual C++ 6.0 桌面应用程序开发
  19. 项目实训---微信小程序选座之7.7日报
  20. 独立站建站 | 初学者必看,如何使用 WordPress制作网站(一)

热门文章

  1. arcgis怎么做poi_基于POI数据与ArcGIS空间分析技术的城市公交站点现状容量评价方法...
  2. 如何“复活”一个人,这里有一份最全的技术路线图谱丨钛媒体深度
  3. Win10 环境变量配置
  4. 计算机械效率的简便公式,机械效率公式
  5. 一种动态阈值白平衡算法实现
  6. getParameterValues中文乱码
  7. php搭建mysql连接池
  8. PHP连接MySQL数据库过程
  9. linux 多块网卡 bridge,理解linux虚拟网络设备bridge
  10. robotium和appium的一些区别(转)