尺有所短,寸有所长
物有所不足,智有所不明

Unity-解析XML的几种方式

XML如下:

<?xml version="1.0" encoding="utf-8"?>
<Xml>
    <JD>
        <Name>节点01</Name>
        <X>001</X>
        <Y>002</Y>
    </JD>
    <JD>
        <Name>节点02</Name>
        <X>003</X>
        <Y>004</Y>
    </JD>
    <JD>
        <Name>节点03</Name>
        <X>005</X>
        <Y>006</Y>
    </JD>
</Xml>

接下来Unity中写代码:方式一通过GetElementsByTagName直接获取节点,返回类型是XmlNodeList数组,数组包括了这个节点的所有内容,代码:

using UnityEngine;
using System.Collections;
using System.Xml;
public class DJH_Read : MonoBehaviour {
// Use this for initialization
void Start () {
string url = Application.dataPath + "/MyTest.xml";
XmlDocument XmlDoc=new XmlDocument();
XmlDoc.Load(url);
int XmlCount = XmlDoc.GetElementsByTagName("JD")[0].ChildNodes.Count;
for (int i = 0; i < XmlCount; i++)
{
string NameValue = XmlDoc.GetElementsByTagName("JD")[0].ChildNodes[i].InnerText;
Debug.Log(NameValue);
}
}
}

方式二:通过foreach查找所有目标名称的子节点,代码如下:

using UnityEngine;
using System.Collections;
using System.Xml;
public class DJH_Read : MonoBehaviour {
// Use this for initialization
void Start () {
string url = Application.dataPath + "/MyTest.xml";
XmlDocument XmlDoc=new XmlDocument();
XmlDoc.Load(url);
XmlNodeList nodeList = XmlDoc.SelectSingleNode("Xml").ChildNodes;
foreach (XmlElement xe in nodeList)
{
foreach (XmlElement xxe in xe.ChildNodes)
{
if (xxe.Name == "Name")
{
Debug.Log(xxe.InnerText);
}
}
}
}
}

两种方式输出结果,左方式1,右方式2

赞(0) 打赏
转载请注明出处:芝麻粒儿博客芝麻粒儿 » Unity-解析XML的几种方式
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏