Unity 基础 之 xml 使用 Office Excel 轻松编辑保存 xml 数据,并解析读取数据

Unity 基础 之 xml  使用 Office Excel 轻松编辑保存 xml 数据

 

目录

Unity 基础 之 xml  使用 Office Excel 轻松编辑保存 xml 数据

一、简单介绍

二、实现原理

三、注意事项

四、效果预览

五、实现步骤

六、关键代码


 

一、简单介绍

Unity中的一些基础知识点。便于后期开发使用。

本节介绍,如何使用 Office Excel 轻松编辑 xml 数据,并保存使用。

 

二、实现原理

1、一个xml 属性模板;

2、Office Excel 读取 xml 属性模板的信息;

3、Office Excel 添加数据,另存为 xml 数据,同时保存一份excle,便于后期修改维护;

4、导入 Unity 中,对应读取即可;

 

三、注意事项

1、xml 属性模板中一定要对应两条属性,一条可能Office Excel 识别不出为 xml;

2、注意另存为 xml 数据,而不是 xml 电子表格(xml 电子表格会带很多多余信息在xml中)

 

四、效果预览

Unity 基础 之 xml 使用 Office Excel 轻松编辑保存 xml 数据,并解析读取数据_第1张图片

Unity 基础 之 xml 使用 Office Excel 轻松编辑保存 xml 数据,并解析读取数据_第2张图片

 

五、实现步骤

1、可以新建一个文本txt,编辑需要的属性信息,保存,,然后修改后缀为 xml

(xml 属性模板中一定要对应两条属性,一条可能Office Excel 识别不出为 xml)

Unity 基础 之 xml 使用 Office Excel 轻松编辑保存 xml 数据,并解析读取数据_第3张图片

Unity 基础 之 xml 使用 Office Excel 轻松编辑保存 xml 数据,并解析读取数据_第4张图片

 

2、打开 Excel,把编辑好的xml 属性模板拖入 Excel,点击确定

Unity 基础 之 xml 使用 Office Excel 轻松编辑保存 xml 数据,并解析读取数据_第5张图片

Unity 基础 之 xml 使用 Office Excel 轻松编辑保存 xml 数据,并解析读取数据_第6张图片

 

3、编辑属性

Unity 基础 之 xml 使用 Office Excel 轻松编辑保存 xml 数据,并解析读取数据_第7张图片

 

4、然后另存为 xml 数据

注意另存为 xml 数据,而不是 xml 电子表格(xml 电子表格会带很多多余信息在xml中)

Unity 基础 之 xml 使用 Office Excel 轻松编辑保存 xml 数据,并解析读取数据_第8张图片

Unity 基础 之 xml 使用 Office Excel 轻松编辑保存 xml 数据,并解析读取数据_第9张图片

 

5、把保存的 xml 数据导入 Unity 中的 Resources 文件夹

Unity 基础 之 xml 使用 Office Excel 轻松编辑保存 xml 数据,并解析读取数据_第10张图片

 

6、编写脚本,进行读取xml 数据,把脚本挂载到场景中

Unity 基础 之 xml 使用 Office Excel 轻松编辑保存 xml 数据,并解析读取数据_第11张图片

 

7、运行,解析结果

Unity 基础 之 xml 使用 Office Excel 轻松编辑保存 xml 数据,并解析读取数据_第12张图片

 

六、关键代码

1、xml 属性模板(XmlTemplate.xml)















 

2、XmlReadAndParse.cs

using System;
using System.Collections;
using System.Collections.Generic;
using System.Xml;
using UnityEngine;

public class XmlReadAndParse : MonoBehaviour
{

    List heroList = null;
    // Start is called before the first frame update
    void Start()
    {
        heroList = new List();

        TextAsset xml = ReadXML("HerosData");
        if (ParseXML(xml) == true) {

            Debug.Log("heroList.Count : " + heroList.Count);
            foreach (Hero item in heroList)
            {

                Debug.LogFormat("{0},{1},{2},{3},{4}",item.ID,item.Name,item.Age,item.Sex,item.Kungfu);

            }
        }
    }

    private TextAsset ReadXML(string path) {
        return Resources.Load(path);
    }

    /// 
    /// 对应 xml 属性解析
    /// 
    /// 文件内容
    /// true 成功解析
    private bool ParseXML(TextAsset textAsset)
    {
        
        if (!textAsset)
        {
            Debug.LogError("XML  数据不能为空");
            return false;
        }
        else
        {
            XmlDocument doc = new XmlDocument();
            doc.LoadXml(textAsset.text);

            XmlNodeList nodLst = doc.SelectSingleNode("root").ChildNodes;

            for (int i = 0; i < nodLst.Count; i++)
            {
                XmlElement ele = nodLst[i] as XmlElement;

                if (ele.GetAttributeNode("ID") == null)
                {
                    continue;
                }

                Hero hero = new Hero();

                hero.ID = Convert.ToInt32(ele.GetAttributeNode("ID").InnerText);
                foreach (XmlElement e in nodLst[i].ChildNodes)
                {
                    switch (e.Name)
                    {
                        case "heroname":
                            hero.Name =e.InnerText;
                            break;
                        case "age":
                            hero.Age = e.InnerText;
                            break;
                        case "sex":
                            hero.Sex = e.InnerText;
                            break;
                        case "kungfu":
                            hero.Kungfu = e.InnerText;
                            break;
                    }
                }

                heroList.Add(hero);

            }

        }
        return true;

    }
}

public class Hero {
    

    public int ID { get; set; }
    public string Name { get; set; }
    public string Age { get; set; }
    public string Sex { get; set; }
    public string Kungfu { get; set; }

    public Hero() { }
    public Hero(int iD, string name, string age, string sex, string kungfu)
    {
        ID = iD;
        Name = name;
        Age = age;
        Sex = sex;
        Kungfu = kungfu;
    }

}

 

你可能感兴趣的:(基础,Unity,Unity,xml数据,Office,Excel,xml,编辑解析)