一、xml文件是什么?

XML是指可扩展标记语言,英文:Extensible Markup Language的缩写。

二、xml文件有什么用?

用来传输和存储数据,比如网络通信,本地配置文件等。

三、xml文件长什么样?

一个文件示例:(包含了三个数据项,每个数据项里有名字、年龄、性别这三个属性)

<?xml version="1.0" encoding="UTF-8"?>
<root>
<item ID="1">
<name>Plane</name>
<age>29</age>
<sex>1</sex>
</item>
<item ID="2">
<name>Weny</name>
<age>28</age>
<sex>0</sex>
</item>
<item ID="3">
<name>Seven</name>
<age>3</age>
<sex>1</sex>
</item>
</root>

四、如何生成xml文件?

  • 制作xml模板格式文件(必须要有两个相同的数据项,否则无法在Excel中进行映射)
<?xml version="1.0" encoding="UTF-8"?>
<root>
<item ID="">
<surname></surname>
<man></man>
<woman></woman>
</item>
<item ID="">
<surname></surname>
<man></man>
<woman></woman>
</item>
</root>
  • 将模板文件导入Excel

    • 在Excel中打开自定义菜单:文件-选项-自定义功能区-主选项卡,将开发工具添加到主选项卡。
    • 在开发工具面板里:XML-源-XML映射-添加模版文件
    • 选中源面板里的模版,映射到表格里。
  • 在Excel中填充数据
    • 数据不会类型,最终都会转化为字符串类型
  • 从Excel中导出附带数据的xml文件
    • 在开发工具面板里:XML-导出

五、如何使用xml文件?

  • 加载xml文件

    • 使用Unity资源系统加载文件
    TextAsset xml = Resources.Load<TextAsset>(filePath);
    XmlDocument doc = new XmlDocument();
    doc.LoadXml(xml.text);
    • 在C#文件IO接口加载文件
    XmlDocument doc = new XmlDocument();
    doc.Load(@"D:\Dev\info.xml");
  • 解析xml文件
    • 获取根节点下的所有子节点的List:
    XmlNodeList nodLst = doc.SelectSingleNode("root").ChildNodes;
    • 将某一个节点转化为一个XmlElement:
    XmlElement ele = nodLst[i] as XmlElement;
    • 从XmlElement里获取名称为"ID"的数据:
    string value = ele.GetAttributeNode("ID").InnerText;

    数据都是以字符串的形式存储,需要自己转化为对应的数据类型。

六、备注说明

  • 关于 XML 头声明和standalone 的解释
    <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
    • version="1.0" ,它是表示版本为1.0;
    • standalone表示该xml是不是独立的,如果是yes,则表示这个XML文档是独立的,不能引用外部的DTD规范文件;如果是no,则该XML文档不是独立的,表示可以用外部的DTD规范文档。

XML在C#与Unity3D中的实战运用的更多相关文章

  1. 图文详解Unity3D中Material的Tiling和Offset是怎么回事

    图文详解Unity3D中Material的Tiling和Offset是怎么回事 Tiling和Offset概述 Tiling表示UV坐标的缩放倍数,Offset表示UV坐标的起始位置. 这样说当然是隔 ...

  2. Unity3d中使用log4net

    原地址:http://www.cnblogs.com/koalaylj/archive/2012/09/04/2670629.html 最近在用unity3d开发Android上的游戏,一直Debug ...

  3. Unity3D游戏开发之游戏读/存档功能在Unity3D中的实现

    喜欢我的博客请记住我的名字:秦元培,我的博客地址是:http://qinyuanpei.com 转载请注明出处,本文作者:秦元培, 本文出处:http://blog.csdn.net/qinyuanp ...

  4. 【Unity3d游戏开发】Unity3D中的3D数学基础---向量

    向量是2D.3D数学研究的标准工具,在3D游戏中向量是基础.因此掌握好向量的一些基本概念以及属性和常用运算方法就显得尤为重要.在本篇博客中,马三就来和大家一起回顾和学习一下Unity3D中那些常用的3 ...

  5. Unity3D中可中途释放的单例

    Unity3D中可中途释放的单例 使用静态类,静态变量的坏处是从程序加载后就一直占用内存,想要释放比较麻烦,可是之前使用的单例,没有提供释放的方法,那是不是也同静态的一样直到程序结束菜释放?那单例的好 ...

  6. unity3d中 刚体(Rigidbody) 碰撞体(Collider) 触发器(Is Trigger)

      刚体(Rigidbody)的官方(摘自Unity3d的官方指导书<Unity4.x从入门到精通>)解释如下: Rigidbody(刚体)组件可使游戏对象在物理系统的控制下来运动,刚体可 ...

  7. Unity3D中Update()与FixedUpdate()的区别

    Unity3D中Update()与FixedUpdate()的区别是什么呢?从字面上理解,它们都是在更新时会被调用,并且会循环的调用.但是Update会在每次渲染新的一帧时,被调用.而FixedUpd ...

  8. Unity3D中C#和js方法相互调用

    通过查找资料,Unity3D中C#和js要相互调用彼此的方法,js文件必须放在"Standard Assets". "Pro Standard Assets" ...

  9. 在unity3d中使用opencv

    1.首先下载opencv2.4.10,解压缩后放在合适的地方,然后根据自己的电脑(32位或64位)选择X86或X64,我的是32位,将“opencv存放路径\build\x86\vc12\bin”加入 ...

随机推荐

  1. MongoDB Data Model 浅谈

    MongoDB 对于数据的 schema 要求很灵活. 与 MySQL 相比,collection 并不会强制文档的结构.(MySQL 在定义表时, 需要指定有哪些字段.类型.展示长度等) 因此,插入 ...

  2. PCIE接口的说明

    https://blog.csdn.net/u013253075/article/details/80835489

  3. 数据科学:Pandas 和 Series 的 describe() 方法

    一.Pandas 和 Series 的 describe() 方法 1)功能 功能:对数据中每一列数进行统计分析:(以“列”为单位进行统计分析) 默认只先对“number”的列进行统计分析: 一列数据 ...

  4. Linux面试题大全(带答案)

    一.填空题:1. 在Linux系统中,以 文件 方式访问设备 .2. Linux内核引导时,从文件 /etc/fstab 中读取要加载的文件系统.3. Linux文件系统中每个文件用 索引节点来标识. ...

  5. POJ_3740 Easy Finding ——精确覆盖问题,DLX模版

    Easy Finding Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 18790   Accepted: 5184 Des ...

  6. C语言中字符数据的输入和输出

    字符的输出 C语言中使用putchar函数来输出字符数据 #include <stdio.h> int main() { char a,b,c,d; //定义字符变量a,b,c,d a = ...

  7. Ansible之Playbooks的when语句

    在使用ansible做自动化运维的时候,大多数情况下都执行某些任务的时候都需要依赖某个变量的值或者是上一个任务的执行结果.如,根据facts信息中的系统版本相关的信息来确定使用哪种包管理器安装软件.A ...

  8. saltstack系列(五)——zmq扩展(一)

    问题 假设我们的一个客户端既有pull又有sub,他们两个都需要接收消息,该如何协调呢,毕竟,当一个socket要收消息的时候,函数recv是阻塞的,所以,我们第一个思路是不让它阻塞? 实例代码: # ...

  9. 国庆前执行更新承诺SO交期 FP_SO2SAP

    每年9月20日到30号执行以下程序:创建日期为昨天的订单,且承诺交期为10月1到3号,则承诺交期需加7天:创建日期为昨天的订单, 承诺交期为4号到11月1日,承诺交期需加4天 存储过程:FP_SO2S ...

  10. SpringSecurity3.X权限原理(转)

      这里给出一个简单的安全验证的实现例子,先说一下需求: 1.通过登录页面进行登录 2.用户登录前访问被保护的地址时自动跳转到登录页面 3.用户信息存储在数据表中 4.用户权限信息存在在数据表中 5. ...