unity3d使用Mono.Xml读取xml

20 篇文章 0 订阅

unity3d读取xml有好几种方式,最简单是直接利用c#读取xml,但是项目打包可能有点大。另外两个是利用其他轻量级xml库来实现,如Mono.Xml、XMLParser。Mono.Xml是c#写的,XMLParser是js写的。文章主要说明Mono.Xml的用法。

首先,定义一个xml文件,如下:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ROOT>
  <table wave="1" level="1" name="John"/>
  <table wave="2" level="1" name="Lucy"/>
</ROOT>

把Mono.Xml加进unity3d项目。下载地址:http://download.csdn.net/detail/cwqcwk1/7105071

unity3d利用Mono.xml读取xml的代码如下:

using UnityEngine;
using System.Collections;

using Mono.Xml;
using System.IO;

using System.Security;

public class XmlLorder {

  public void Read()
  {
    SecurityParser SP = new SecurityParser();

    // 假设xml文件路径为 Resources/test.xml
    string xmlPath = "test.xml";

    SP.LoadXml(Resources.Load( xmlPath ).ToString());
    
    SecurityElement SE = SP.ToXml();

    foreach (SecurityElement child in SE.Children)
    {
      //比对下是否使自己所需要得节点
      if(child.Tag == "table")
      {
        //获得节点得属性
        string wave = child.Attribute("wave");
        string level = child.Attribute("level");
        string name = child.Attribute("name");
        Debug.Log("wave:" + wave + " level:" + level + " name:" + name);
      }
      
    }

    
  }

}

顺带提一下unity3d使用XMLParser读取xml:

XMLParser xmlparse = new XMLParser();
XMLNode node = xmlparse.Parse(xmldata.text);

XMLNodeList list = node.GetNodeList("ROOT>0>table");
for (int i = 0; i < list.Count; i++)
{
  
  string wave = node.GetValue("ROOT>0>table>" + i + ">@wave");
  string level = node.GetValue("ROOT>0>table>" + i + ">@level");
  string wait = node.GetValue("ROOT>0>table>" + i + ">@wait");

}

XMLParser下载地址: http://download.csdn.net/detail/cwqcwk1/7104625

参考:

http://blog.csdn.net/mycwq/article/details/19813779 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值