XML在C#与Unity3D中的实战运用
一、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中的实战运用的更多相关文章
- 图文详解Unity3D中Material的Tiling和Offset是怎么回事
图文详解Unity3D中Material的Tiling和Offset是怎么回事 Tiling和Offset概述 Tiling表示UV坐标的缩放倍数,Offset表示UV坐标的起始位置. 这样说当然是隔 ...
- Unity3d中使用log4net
原地址:http://www.cnblogs.com/koalaylj/archive/2012/09/04/2670629.html 最近在用unity3d开发Android上的游戏,一直Debug ...
- Unity3D游戏开发之游戏读/存档功能在Unity3D中的实现
喜欢我的博客请记住我的名字:秦元培,我的博客地址是:http://qinyuanpei.com 转载请注明出处,本文作者:秦元培, 本文出处:http://blog.csdn.net/qinyuanp ...
- 【Unity3d游戏开发】Unity3D中的3D数学基础---向量
向量是2D.3D数学研究的标准工具,在3D游戏中向量是基础.因此掌握好向量的一些基本概念以及属性和常用运算方法就显得尤为重要.在本篇博客中,马三就来和大家一起回顾和学习一下Unity3D中那些常用的3 ...
- Unity3D中可中途释放的单例
Unity3D中可中途释放的单例 使用静态类,静态变量的坏处是从程序加载后就一直占用内存,想要释放比较麻烦,可是之前使用的单例,没有提供释放的方法,那是不是也同静态的一样直到程序结束菜释放?那单例的好 ...
- unity3d中 刚体(Rigidbody) 碰撞体(Collider) 触发器(Is Trigger)
刚体(Rigidbody)的官方(摘自Unity3d的官方指导书<Unity4.x从入门到精通>)解释如下: Rigidbody(刚体)组件可使游戏对象在物理系统的控制下来运动,刚体可 ...
- Unity3D中Update()与FixedUpdate()的区别
Unity3D中Update()与FixedUpdate()的区别是什么呢?从字面上理解,它们都是在更新时会被调用,并且会循环的调用.但是Update会在每次渲染新的一帧时,被调用.而FixedUpd ...
- Unity3D中C#和js方法相互调用
通过查找资料,Unity3D中C#和js要相互调用彼此的方法,js文件必须放在"Standard Assets". "Pro Standard Assets" ...
- 在unity3d中使用opencv
1.首先下载opencv2.4.10,解压缩后放在合适的地方,然后根据自己的电脑(32位或64位)选择X86或X64,我的是32位,将“opencv存放路径\build\x86\vc12\bin”加入 ...
随机推荐
- shell编程中变量的运算 (shell 06)
主要包括以下3种 字符串操作数学运算浮点运算 一.字符串操作 字符串的连接 连接字2个字符串不需要任何连接符,挨着写即可 长度获取 expr length "hello" expr ...
- Redis数据清除问题
Redis中数据清除可以分为两种方式 手动清除:指定要清除的key,通过delete命令即可清除 自动清除:使用Redis提供的数据过期策略 Redis数据过期策略 redis提供了非常灵活 ...
- AngularJS:表格
ylbtech-AngularJS:表格 1.返回顶部 1. AngularJS 表格 ng-repeat 指令可以完美的显示表格. 在表格中显示数据 使用 angular 显示表格是非常简单的: A ...
- git rebase 与 merge(个人使用理解)
merge 是“合并”,rebase.cherry-pick 中文能理解成“重现” merge 一般是对于整个分支做处理,比如一个feature分支,功能开发完成经过测试了,我们会合并(merge)到 ...
- 如何正确且成功破解跨平台数据库管理工具DbVisualizer?(图文详解)
前期博客 基于JDBC的跨平台数据库管理工具DbVisualizer安装步骤(图文详解)(博主推荐) 上图,所示,说明这个还只是免费版而已,没又破解为Pro版本. 接下来,就是带领大家如何正确且成功破 ...
- 子域名扫描器 - aquatone
项目地址:https://github.com/michenriksen/aquatone git clone,然后打开 ┌─[root@sch01ar]─[/sch01ar] └──╼ #git c ...
- Python——通过斐波那契数列来理解生成器
一.生成器(generator) 先来看看一个简单的菲波那切数列,出第一个和第二个外,任意一个数都是由前两个数相加得到的.如:0,1,1,2,3,5,8,13...... 输入斐波那契数列前N个数: ...
- mysql 存储过程 编写注意事项
mysql的存储过程有很多需要注意的地方,一不留神就会出错,可能调试了老半天才发现原因 1 没有return 语句 可以采用leave代替,返回直接使用select语句 比如select 1: 2. ...
- c#winform图片绘制与图片验证码
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- Java中的Constants类
1.遇到代码中的问题 String userName = (String) request.getParameter("userName"); String passWord = ...