Unity中解析xml文档的简单用法
创建Xml文件
首先,在unity项目中的根目录中创建一个xml文档,例如起名叫item.xml。再创建一个脚本,起名为XmlTest。如图所示:
在item.xml文档中写入以下内容:
<item>
<item1>
<id>1</id>
<name>china</name>
<year>2016</year>
</item1>
<item2>
<id>2</id>
<name>usa</name>
<year>2017</year>
</item2>
</item>
写入代码
在脚本里添加以下代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Xml;
using System.IO;
public class XmlTest : MonoBehaviour {
void Start () {
string path = Application.dataPath + "/item.xml";
XmlDocument document=new XmlDocument();//XmlDocument是专门用来解析xml文档的
document.Load(path);//将指定路径的xml文件给document来解析
XmlNode node = document.FirstChild;//FirstChild用来获取xml中的第一个节点,也就是根节点
Debug.Log(node.Name);
XmlNodeList xmlNodeList = node.ChildNodes;//获取根节点下的所有子节点
foreach (XmlNode item in xmlNodeList) //遍历这些子节点的集合,进行判断
{
if (item.Name == "item1")
{
foreach (XmlNode n in item.ChildNodes)
{
if (n.Name == "id")
{
Debug.Log(n.InnerText);//InnerText可以获取节点中的文本
}
if(n.Name== "name")
{
Debug.Log(n.InnerText);
}
if(n.Name== "year")
{
Debug.Log(n.InnerText);
}
}
}
else if(item.Name == "item2")
{
foreach (XmlNode n in item.ChildNodes)
{
if (n.Name == "id")
{
Debug.Log(n.InnerText);
}
if (n.Name == "name")
{
Debug.Log(n.InnerText);
}
if (n.Name == "year")
{
Debug.Log(n.InnerText);
}
}
}
}
}
void Update () {
}
}
测试
将脚本挂在相机下,运行后会打印以下内容:
(第一个打印的是根节点item的名字,后面分别打印的是item下的每个子节点(也就是item1和item2)下面的子节点的文本内容)
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!