Unity、C#读取XML
有如下XML文件:
<?xml version="1.0" encoding="UTF-8"?>
<DataNode>
<province id ="" name="江苏"><!--省-->
<city id ="" name ="南京"></city><!--城市-->
<city id ="" name ="镇江"></city>
<city id ="" name ="南通"></city>
</province>
<province id ="" name="河南">
<city id ="" name ="郑州"></city>
<city id ="" name ="开封"></city>
<city id ="" name ="洛阳"></city>
</province>
</DataNode>
那我们如何读取里面的信息,代码如下:
using System.IO;
using System.Xml;
using UnityEngine; public class ReadXml : MonoBehaviour
{
private void Start()
{
string _path = Application.dataPath + "/TestXml.xml";
if (File.Exists(_path))
{
XmlDocument _xmlDoc = new XmlDocument();
//忽略XML中注释的影响。(默认情况下,读取xml文件是不忽略注释的,读取带注释的节点会造成异常,所以需要忽略注释的影响)
XmlReaderSettings _set = new XmlReaderSettings();
_set.IgnoreComments = true;
XmlReader _reader = XmlReader.Create(_path, _set);
//读取XML文件
_xmlDoc.Load(_reader);
//关闭流
_reader.Close();
//取根节点,根节点下的所有子节点(不包含孙节点)形成节点列表
XmlNodeList _nodeList = _xmlDoc.SelectSingleNode("DataNode").ChildNodes;
//遍历每一个节点,拿节点的属性以及节点的内容
foreach (XmlElement _xe in _nodeList)
{
Debug.Log("节点名称:" + _xe.Name);
Debug.Log("属性id :" + _xe.GetAttribute("id"));
Debug.Log("属性name :" + _xe.GetAttribute("name"));
foreach (XmlElement _x1 in _xe.ChildNodes)
{
if (_x1.Name == "city")
{
Debug.Log("city:" + _x1.InnerText);
}
}
}
//打印XML字符串
Debug.Log("all = " + _xmlDoc.OuterXml);
}
}
}
其实XML的读取很简单,引用 System.Xml 类库,利用里面的一些方法一层层遍历节点就可以取到自己想要的值。
Unity、C#读取XML的更多相关文章
- unity Android 打包后读取 xml 文件
原地址:http://www.cnblogs.com/wuzhang/p/wuzhang20140731.html 问题: 前天在做东西的过程中发现了一个让人很纠结的问题,为什么Unity 程序 ...
- Unity数据类型转XML/Json-封装函数直接调用(Chinar)
Unity将数据直接转XML/Json文件 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar ...
- 读取xml数据装配到字典中之应用场景
前段时间看到支付宝设置里面有个多语言这个功能,蛮有意思的,就想双休没事的话做个相关的demo玩玩,可是礼拜六被妹子拽出去玩了一天,来大上海有大半年了,基本没有出去玩过,妹子说我是超级宅男,也不带她出去 ...
- 自己动手之使用反射和泛型,动态读取XML创建类实例并赋值
前言: 最近小匹夫参与的游戏项目到了需要读取数据的阶段了,那么觉得自己业余时间也该实践下数据相关的内容.那么从哪入手呢?因为用的是Unity3d的游戏引擎,思来想去就选择了C#读取XML文件这个小功能 ...
- MFC如何读取XML
<?xml version="1.0" encoding="utf-8"?> <Cases> <case> <No&g ...
- 使用dom4j读取xml连接数据库与之单例模式
使用dom4j读取xml ,加入jar包 dom4j-1.6.1.jar jaxen-1.1-beta-6.jar public class XmlConfigReader { //懒汉式,延迟加载 ...
- java DOM4J 读取XML
最近学习Java,在处理XML文档的时候,查阅相关资料,发现了DOM4J这个jre库,相对C#的XML处理来说,功能还算是跟得上 下面展示一篇我自己写的一个XML读取测试 import java.ut ...
- C#中常用的读取xml的几种方法(转)
本文完全来源于http://blog.csdn.net/tiemufeng1122/article/details/6723764,仅作个人学习之用. XML文件是一种常用的文件格式,例如WinFor ...
- 用Unity代码通过Xml配置生成GameObject之——前两天掉的坑
1. Resources.Load(path),path不是绝对路径,而是相对"Resources/"的相对路径!如: 要想Instantiate则代码应该如下: string m ...
随机推荐
- Linux的命令技巧
一.使用apt-get installl 方法安装的库或者程序一般的路径如下 1.下载的软件存放位置 /var/cache/apt/archives 2.安装后软件默认位置 /usr ...
- Node学习笔记(一)
1. node的特点: Node.js 不是一种独立的语言,与 PHP.Python.Perl.Ruby 的“既是语言也是平台”不同.Node.js 也不是一个 JavaScript 框架,不同于 C ...
- 删除已经提交到远程仓库的gitignore文件
亲们支持我的新博客哦==>地址(以后更新会尽量在新博客更新,欢迎大家访问加入我的后宫w) ) gitignore里新添加了需要过滤的文件,但是之前已经提交到了远程分支 解决方法: # 1.为避免 ...
- linux 获取帮助的命令
Linux命令详解:[7]获得命令帮助 听语音 | 浏览:4601 | 更新:2015-01-30 20:21 | 标签:linux 1 2 3 4 5 分步阅读 在维护和使用Linux系统时,常常会 ...
- django之用户表的继承
有这样一个场景,之前已经设计好了用户的信息表,但是再设计另外一个业务表的时候,信息有点重复,如何重新设计呢? 可以采用表的继承,让一个表作为基类,业务表就可以继承它 要注意以下几点 1 作为基类的表使 ...
- JVM之堆内存(年经代,老年代)
一.为什么会有年轻代 我们先来屡屡,为什么需要把堆分代?不分代不能完成他所做的事情么?其实不分代完全可以,分代的唯一理由就是优化GC性能.你先想想,如果没有分代,那我们所有的对象都在一块,GC的时候我 ...
- win7+win10系统使用日常经验集锦
请保留此份 Cmd Markdown 的欢迎稿兼使用说明, 当然你也可以使用彩色字体. 或者使用小体字. 或者使用大体字. 如需撰写新稿件,点击顶部工具栏右侧的 新文稿 或者使用快捷键 Ctrl+Al ...
- 《算法导论》——随机化快排RandomizedQuickSort
今日算法:随机化快排RandomizedQuickSort 基础工作swap交换和partition分治 /* *交换数组的两个元素 *fromIndex和toIndex为要交换的两个元素的索引 */ ...
- 初学Python的奇葩用法
ming_piao= 11ming_yeji= 586319ming_age= 34ming_gongling= 10ming_yanjiang= 81 qiang_piao= 7qiang_yeji ...
- jquery中的callbacks之我见
callbacks是jquery的核心之一. 语法如下: jQuery.Callbacks( flags ) flags 类型: String 一个用空格标记分隔的标志可选列表,用来改变回调列表中 ...