XMLPaser插件使用

来源:互联网 发布:程序员转正心得 编辑:程序博客网 时间:2024/06/06 05:27

XMLPaser插件使用


解析XML文件的使用可以用到这个插件,在Unity里面需要放在Plugins目录下,如下图:

这里写图片描述


XML文件格式一般如下:

<?xml version="1.0" encoding="utf-8" ?><root>  <server port ="10000" ip="192.169.1.1">    <id>101</id>    <name>一区 黄风洞</name>    <type>火爆</type>    <icon>Btn_ShaiZi</icon>  </server>  <server>    <id>102</id>    <name>二区 浑水洞</name>    <type>流畅</type>    <icon>Ico_Blood</icon>  </server>  <server>    <id>103</id>    <name>三区 洞庭湖</name>    <type>火爆</type>    <icon>Btn_Main_PaiHang</icon>  </server>  <server>    <id>104</id>    <name>四区 黑风洞</name>    <type>流畅</type>    <icon>Btn_Main_RiChang</icon>  </server>  <server>    <id>105</id>    <name>五区 白风洞</name>    <type>流畅</type>    <icon>Btn_Main_RiChang</icon>  </server></root>

XMLPaser代码范例:

using System.Collections.Generic;using UnityEngine;using System.Xml;public class XMLParse_demo : MonoBehaviour{    public TextAsset serverListxml;    private List<ServerData> serverLIst;    void Start()    {        #region xmlparser        ////xmlParser        serverLIst = new List<ServerData>();        //print(serverListxml.text);        XMLParser parser = new XMLParser();        XMLNode root = parser.Parse(serverListxml.text);        XMLNodeList xmlList = root.GetNodeList("root>0>server");        //foreach (XMLNode item in xmlList)        //{        //    print(item.GetValue("_text"));        //}        for (int i = 0; i < xmlList.Count; i++)        {            print(root.GetValue("root>0>server>" + i + ">_text"));            ServerData serverdata = new ServerData();            serverdata.id = int.Parse(root.GetValue("root>0>server>" + i + ">@id"));            serverdata.name = root.GetValue("root>0>server>" + i + ">@name");            serverdata.ip = root.GetValue("root>0>server>" + i + ">@ip");            serverdata.port = int.Parse(root.GetValue("root>0>server>" + i + ">@port"));            serverdata.desc = ((XMLNode)xmlList[i]).GetValue("@desc");            serverdata.icon = ((XMLNode)xmlList[i]).GetValue("@icon");            serverdata.status = (((XMLNode)xmlList[i]).GetValue("@icon") == "火爆") ? ServerStatus.HuoBao : ServerStatus.LiuChang;            serverdata.type = root.GetValue("root>0>server>" + i + ">_text");            serverLIst.Add(serverdata);        }        print(serverLIst[0].desc);        //string  value = root.GetValue("root>0>server>0>@id");        //print(value);        //XMLNode node = root.GetNode("root>0>server>0");        //print(node.GetValue("@id"));        //print(node.GetValue("_text"));        #endregion    }}public class ServerData{    public int id;    public string name;    public string ip;    public int port;    public ServerStatus status;    public string icon;    public string desc;    public string type;  //国服。。。。}public enum ServerStatus : byte{    HuoBao, LiuChang}

插件下载链接:https://pan.baidu.com/s/1nv88TvV 密码:tesg


原创粉丝点击