您的位置:首页 > 移动开发 > Unity3D

在Unity3D中使用Mono.XML读取XML文件

2013-03-13 14:45 971 查看
最近项目中使用到读取XML数据来初始化游戏物体,试过了.Net的XML解析功能,然后就想Mono会不会有类似的解析工具。最后在国外的网站上找到了一个解决办法。本人通过试验,找到如下的方法来解析XML文件。以下是一个例子:

1、XML文件如下:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Rootxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Row>
<Level>1</Level>
<Coin>2323</Coin>
<Exp>432</Exp>
</Row>
<Row>
<Level>2</Level>
<Coin>2342</Coin>
<Exp>4444</Exp>
</Row>
...
...
</Root><span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"> </span>


把这个XML文件(假定文件名为data.xml)放到Unity3D项目的任意Resources目录下,使用过如下脚本来访问(以查询Level为2的数据项为例):

<pre name="code" class="html"><pre name="code" class="html">using System.IO;
using Mono.Xml;
void ReadXML()
{
SecurityParser SP = new SecurityParser();
SP.LoadXml(Resources.Load("data").ToString());
System.Security.SecurityElement SE = SP.ToXml();

foreach (System.Security.SecurityElement childin SE.Children)
{
if (int.Parse(child.SearchForChildByTag("Level").Text) == 2)
{
coin = int.Parse(child.SearchForChildByTag("Coin").Text);
exp =  int.Parse(child.SearchForChildByTag("Exp").Text);
Debug.Log("level:2\t" +"\texpNum:" + exp +"\tcoinNum:" + coin);
break;
}
}
}

调用ReadXML()就可以完成任务。
添加一句,话说使用Mono的XML可以减少对System库的引用,在输出到移动设备时可以减少内存的占用哦。其实这才是这个东东的最大意义。
PS:Mono.xml可以在 http://download.csdn.net/detail/reipeng/5107900 下载。直接放到Unity3d项目中就可用了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Unity3d Mono XML