有如下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的更多相关文章

  1. unity Android 打包后读取 xml 文件

    原地址:http://www.cnblogs.com/wuzhang/p/wuzhang20140731.html 问题:    前天在做东西的过程中发现了一个让人很纠结的问题,为什么Unity 程序 ...

  2. Unity数据类型转XML/Json-封装函数直接调用(Chinar)

    Unity将数据直接转XML/Json文件 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar ...

  3. 读取xml数据装配到字典中之应用场景

    前段时间看到支付宝设置里面有个多语言这个功能,蛮有意思的,就想双休没事的话做个相关的demo玩玩,可是礼拜六被妹子拽出去玩了一天,来大上海有大半年了,基本没有出去玩过,妹子说我是超级宅男,也不带她出去 ...

  4. 自己动手之使用反射和泛型,动态读取XML创建类实例并赋值

    前言: 最近小匹夫参与的游戏项目到了需要读取数据的阶段了,那么觉得自己业余时间也该实践下数据相关的内容.那么从哪入手呢?因为用的是Unity3d的游戏引擎,思来想去就选择了C#读取XML文件这个小功能 ...

  5. MFC如何读取XML

    <?xml version="1.0" encoding="utf-8"?> <Cases> <case> <No&g ...

  6. 使用dom4j读取xml连接数据库与之单例模式

    使用dom4j读取xml ,加入jar包 dom4j-1.6.1.jar jaxen-1.1-beta-6.jar public class XmlConfigReader { //懒汉式,延迟加载 ...

  7. java DOM4J 读取XML

    最近学习Java,在处理XML文档的时候,查阅相关资料,发现了DOM4J这个jre库,相对C#的XML处理来说,功能还算是跟得上 下面展示一篇我自己写的一个XML读取测试 import java.ut ...

  8. C#中常用的读取xml的几种方法(转)

    本文完全来源于http://blog.csdn.net/tiemufeng1122/article/details/6723764,仅作个人学习之用. XML文件是一种常用的文件格式,例如WinFor ...

  9. 用Unity代码通过Xml配置生成GameObject之——前两天掉的坑

    1. Resources.Load(path),path不是绝对路径,而是相对"Resources/"的相对路径!如: 要想Instantiate则代码应该如下: string m ...

随机推荐

  1. 目标检测框架py-faster-rcnn修改anchor_box

    众所周知,anchor_box控制了回归框的大小,我们有时候检测的是大物体或小物体时,需要调整回归框的大小的时候,得改一下anchor_box.基于rgb公开的py-faster-rcnn修改anch ...

  2. 笔记:MYSQL四种事务隔离级。

    1·未提交读(Read Uncommitted):允许脏读,也就是可能读取到其他会话中未提交事务修改的数据 脏读: 脏读就是指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库 ...

  3. Linux的nmon监控结果分析文件中网络分析NET

    1.首先,使用# ifconfig查看Linux系统中的网卡名称,有的是eth0,有的是em1,以查看结果为准,下图为em1 2.先试试Linux系统中有没有安装ethtool工具,没有的话,下载et ...

  4. 关于Encode in UTF-8 without BOM

    定义BOM(Byte Order Mark),字节顺序标记,出现在文本文件头部,Unicode编码标准中用于标识文件是采用哪种格式的编码.它的编码是FEFF. 说明 在 UTF-8 文件中放置 BOM ...

  5. 《Spring_Four》第二次作业 基于Jsoup的大学生考试信息展示系统开题报告

    一.项目概述 该项目拟采用Jsoup对大学生三大考试(考研.考公务员.考教师资格证)进行消息搜集,研发完成一款轻量级的信息展示APP,本项目主要的创新点在于可以搜集大量的考试信息,对其进行一个展示,而 ...

  6. java-web的请求和响应机制中的request请求

     1 Request对象和Response对象的原理 1.1  都是由服务器创建的  我们使用它 1.2 Request对象  是获取请求消息 response对象是响应 2 request 对象的继 ...

  7. Excel、VBA与MySQL交互

    本文主要涉及: VBA中的MySQL环境配置 VBA连接MySQL数据库 VBA读写MySQL数据 在Excel中连接MySQL数据库及数据读写 系统环境: Windows 10 Excel 2013 ...

  8. vi 操作

    vi 3种模式:1命令行模式,2插入模式,3末行模式 Vim启动后直接进入的是命令行模式,命令行模式顾名思义就是可以输入各种命令的意思, 1. 命令行下按i键进入“插入模式”,命令行下按:键进入“末行 ...

  9. C++类有继承时,析构函数必须为虚函数

    C++类有继承时,析构函数必须为虚函数.如果不是虚函数,则使用时可能存在内在泄漏的问题. 假设我们有这样一种继承关系: 如果我们以这种方式创建对象: SubClass* pObj = new SubC ...

  10. 使用setx 命令添加环境变量(Windows)

    背景 用GUI的方法可能添加环境变量可能会比较麻烦,为此可采用命令行操作的方式. 步骤 以管理员身份运行 cmd 输入 setx /M "%path%" "%path%[ ...