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

最近项目中使用到读取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项目中就可用了。


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值