Unity-Xml

2019-06-17  本文已影响0人  玄策丶

txt:word = Resources.Load("Test").ToString();

xml

//工程文件下
path1 = System.IO.Directory.GetCurrentDirectory() + "\\Test.xml";
XmlDocument doc1 = new XmlDocument();
doc1.Load(path1);
XmlNodeList xmlNodeList1 = doc1.SelectSingleNode("HeadSelect").ChildNodes;
foreach (XmlElement xe01 in xmlNodeList1)
        {
            if (xe01.Name == "COM")
            {
                string com1 = xe01.GetAttribute("com");
            }
        }

Xml练习练习

/***********************
 * Title:   ""
 * Func:    
 * - 遇见你的眉眼,如清风明月,在似曾相识的凡间.
 * UsedBy:  
 * Date:    2017.
 * Author:  L.
 * Version: 1.0
 * Description:
 ***********************/
using UnityEngine;
using System.Collections;
using System.IO;
using System.Xml;
using UnityEditor;
public class Date_XML : MonoBehaviour
{
    private string path;
    private ArrayList aL_01 = new ArrayList();
    private ArrayList aL_02 = new ArrayList();

    void Start()
    {
        path = Application.dataPath + "/5.xml/XMLData/ChatData.xml";
    }//end_Start

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.C))
        {
            CreateXML();
        }
        if (Input.GetKeyDown(KeyCode.L))
        {
            LoadXML();
        }
        if (Input.GetKeyDown(KeyCode.A))
        {
            AddXML();
        }
        if (Input.GetKeyDown(KeyCode.U))
        {
            UpdateXML();
        }

    }//end_Update

    void CreateXML()
    {

        //如果文件不存在,我们要创建文件
        if (!File.Exists(path))
        {
            //创建xml文档对象
            XmlDocument doc = new XmlDocument();
            //创建xml头
            XmlNode xmlHead = doc.CreateXmlDeclaration("1.0", "UTF-8", null);
            //把头添加到xml文档中
            doc.AppendChild(xmlHead);

            //创建根节点
            XmlElement root = doc.CreateElement("objects");
            //把根节点添加到文档中
            doc.AppendChild(root);

            //创建子节点01
            XmlElement el01 = doc.CreateElement("messages");
            //给子节点设置属性
            el01.SetAttribute("id", "01");
            //把子节点添加到根节点间中
            root.AppendChild(el01);

            //创建子节点0101,给子节点设置属性,再将子节点添加到某个节点中
            XmlElement el0101 = doc.CreateElement("contents");
            el0101.SetAttribute("name", "大个儿");
            //给元素注入文本节点
            el0101.InnerText = ("嗨,安超,你醒了!");
            el01.AppendChild(el0101);

            //创建子节点0202....
            XmlElement el0102 = doc.CreateElement("missions");
            el0102.SetAttribute("name", "安超");
            el0102.InnerText = ("你昨天晚上对我做了什么?");
            el01.AppendChild(el0102);

            //保存成一个真正的文档
            doc.Save(path);
            //刷新视图
#if UNITY_EDITOR
            AssetDatabase.Refresh();
#endif

        }
    }

    void LoadXML()
    {

        if (!File.Exists(path))
        {
            print("文件不存在");
            return;
        }
        //假如存在的话.创建一个xml对象
        XmlDocument doc = new XmlDocument();
        //得到xml文件
        doc.Load(path);
        //得到根节点下的所有节点
        XmlNodeList xmlNodeList = doc.SelectSingleNode("objects").ChildNodes;
        //遍历所有的节点
        foreach (XmlElement xe_01 in xmlNodeList)
        {
            if (xe_01.GetAttribute("id").Equals("01"))
            {
                foreach (XmlElement xe_02 in xe_01.ChildNodes)
                {
                    //得到1节点里面的内容,放到一个ArrayList数组中
                    if (xe_02.GetAttribute("name") == "大个儿")
                    {
                        aL_01.Add(xe_02.GetAttribute("name")
                                     + ":" + xe_02.InnerText);
                        foreach (var item in aL_01)
                        {
                            print(item);
                        }
                    }
                    if (xe_02.Name == "missions")
                    {
                        aL_02.Add(xe_02.GetAttribute("name") + ":" + xe_02.InnerText);
                        foreach (var item in aL_02)
                        {
                            print(item);
                        }
                    }
                }
            }
        }
    }

    void UpdateXML()
    {
        if (!File.Exists(path))
        {
            return;
        }
        XmlDocument doc = new XmlDocument();
        doc.Load(path);

        //得到objects所有的节点
        XmlNodeList xmlNodeList = doc.SelectSingleNode("objects").ChildNodes;
        foreach (XmlElement xe01 in xmlNodeList)
        {
            if (xe01.GetAttribute("id")=="01")
            {
                xe01.SetAttribute("id", "001");
                foreach (XmlElement xe02 in xe01.ChildNodes)
                {
                    if (xe02.GetAttribute("name").Equals("大个儿"))
                    {
                        xe02.SetAttribute("name", "傻吊吊");
                        xe02.InnerText=("安超,你屁股没事吧");
                    }
                }
            }
        }
        doc.Save(path);
    }

    void AddXML()
    {
        if (!File.Exists(path))
        {
            print("文件不存在");
            return;
        }
        //假如存在的话.创建一个xml对象
        XmlDocument doc = new XmlDocument();
        //得到xml文件
        doc.Load(path);
        //找到根节点
        XmlNode root = doc.SelectSingleNode("objects");

        //在根节点下创建子节点
        XmlElement e = doc.CreateElement("messages01");
        e.SetAttribute("id", "02");
        root.AppendChild(e);

        //在子节点下再创建文本节点
        XmlElement e_1 = doc.CreateElement("contents01");
        e_1.SetAttribute("name", "the4");
        e_1.InnerText=("啊,我记起来了!");
        e.AppendChild(e_1);

        XmlElement e_2 = doc.CreateElement("mession01");
        e_2.SetAttribute("name", "the5");
        e_2.InnerText = ("你坏坏!");
        e.AppendChild(e_2);

        //保存文档
        doc.Save(path);
    }
}

xml文件练习1

<?xml version="1.0" encoding="UTF-8"?>
<objects>
  <messages id="001">
    <contents name="傻吊吊">安超,你屁股没事吧</contents>
    <missions name="安超">你昨天晚上对我做了什么?</missions>
  </messages>
  <messages01 id="02">
    <contents01 name="the4">啊,我记起来了!</contents01>
    <mession01 name="the5">你坏坏!</mession01>
  </messages01>
</objects>

xml练习2

<?xml version="1.0" encoding="UTF-8"?>
<gameobject name="Cube">
  <!--根节点 属性节点 元素节点 文本节点-->>
  <transform>
    <position>
      <x>10</x>
      <y>0 </y>
      <z>10</z>
    </position>
    <rotation>
      <x>0</x>
      <y>0</y>
      <z>0</z>
    </rotation>
    <Scale>
      <x>1</x>
      <y>1</y>
      <z>1</z>
    </Scale>
  </transform>
  <BoxCollider>
    <IsTrigger>true</IsTrigger>
    <Material>null</Material>
    <Center>
      <x>0</x>
      <y>0</y>
      <z>0</z>
    </Center>
    <Size>
      <x>1</x>
      <y>1</y>
      <z>1</z>
    </Size>
  </BoxCollider>
</gameobject>
上一篇 下一篇

猜你喜欢

热点阅读