排序写入XML

using UnityEngine;
using UnityEngine.UI;
using System.Collections;

public class GameController : MonoBehaviour
{

    public float B_sp = 1f;
    public float R_sp = 1f;
    public SerialPortTest spt1;
    public SerialPortTest_red spt2;

    public static GameController _instance;
    private void Awake()
    {
        _instance = this;
    }

    void Start()
    {

        StartCoroutine(ie());
    }

    IEnumerator ie()
    {
        yield return new WaitForSeconds(0.5f);
        GetComponent<AudioSource>().enabled = true;
    }


    // Update is called once per frame
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Escape))
        {
            Application.Quit();
        }
        if (Input.GetMouseButtonDown(1) || Input.GetKeyDown(KeyCode.Keypad9))
        {
            Application.LoadLevel(0);
        }
        if (Input.GetKeyDown(KeyCode.Keypad4))
        {

            spt1.enabled = true;

            spt1.duankoulianjie();
        }
        if (Input.GetKeyDown(KeyCode.Keypad5))
        {
            spt2.enabled = true;
            spt2.duankoulianjie();
        }
        if (Input.GetKeyDown(KeyCode.Keypad7))
        {
            spt1.qingling();
        }
        if (Input.GetKeyDown(KeyCode.Keypad8))
        {
            spt2.qingling();
        }
        if (Input.GetKeyDown(KeyCode.O))
        {
            MY_CS._insatcne.texiao666();
        }
        if (Input.GetKeyDown(KeyCode.P))
        {
            MY_CS._insatcne.texiao777();
        }
        if (Input.GetKeyDown(KeyCode.L))
        {
            MY_CS._insatcne.texiao888();
        }
    }

    public void B_FUZHI()
    {
        Paixu._instance.MYStart("T1", "NO1", (int)SerialPortTest._instance.Arduino_X, "T2", "NO2", (int)SerialPortTest._instance.Arduino_Y, "T3", "NO3", (int)SerialPortTest._instance.Arduino_Z, "T4", "NO4", (int)SerialPortTest._instance.Arduino_A, "T5", "NO5", (int)SerialPortTest._instance.Arduino_B);
    }
    public void R_FUZHI()
    {
        Paixu._instance.MYStart("T6", "NO6", (int)SerialPortTest_red._instance.Arduino_X, "T7", "NO7", (int)SerialPortTest_red._instance.Arduino_Y, "T8", "NO8", (int)SerialPortTest_red._instance.Arduino_Z, "T9", "NO9", (int)SerialPortTest_red._instance.Arduino_A, "T10", "NO10", (int)SerialPortTest_red._instance.Arduino_B);
    }
}



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

public class Paixu : MonoBehaviour
{

    static List<NumData> list = new List<NumData>();

    public static Paixu _instance;
    private void Awake()
    {
        _instance = this;
    }

    private void Start()
    {

        //setData();
        Sort1();

        for (int i = 0; i < list.Count; i++)
        {
            Debug.Log(list[i].name+"++"+list[i].num);
        }

        //Sort2();
        //Debug.Log("---" + list[0].name);
        //for (int i = 0; i < list.Count; i++)
        //{
        //    Debug.Log(list[i].name + "++" + list[i].num);
        //}

        //NumData mdata = Search("B");
        //Debug.Log(mdata.name+ "---" + mdata.num);


    }

    public void MYStart(string T1, string NameA, int A, string T2, string NameB, int B, string T3, string NameC, int C, string T4, string NameD, int D, string T5, string NameE, int E)
    {
        setData(T1, NameA, A, T2, NameB, B, T3, NameC, C, T4, NameD, D, T5, NameE, E);


        Sort2();

        CreatXML_ReadXML._instance.CreateXML(list[0].name2,list[0].name, list[0].num, list[1].name2, list[1].name, list[1].num, list[2].name2, list[2].name, list[2].num, list[3].name2, list[3].name, list[3].num, list[4].name2, list[4].name, list[4].num);
    }

    class NumData
    {
        public int num;
        public string name;
        public string name2;
    }


    static void setData(string T1,string NameA, int A, string T2, string NameB, int B, string T3, string NameC, int C, string T4, string NameD, int D, string T5, string NameE, int E)
    {
        NumData data1 = new NumData();
        NumData data2 = new NumData();
        NumData data3 = new NumData();
        NumData data4 = new NumData();
        NumData data5 = new NumData();
        data1.num = A;
        data1.name = NameA;
        data1.name2 = T1;
        list.Add(data1);
        data2.num = B;
        data2.name = NameB;
        data2.name2 = T2;
        list.Add(data2);
        data3.num = C;
        data3.name = NameC;
        data3.name2 = T3;
        list.Add(data3);
        data4.num = D;
        data4.name = NameD;
        data4.name2 = T4;
        list.Add(data4);
        data5.num = E;
        data5.name = NameE;
        data5.name2 = T5;
        list.Add(data5);
    }

    //从大到小排序
    static void Sort1()
    {
        list.Sort((a, b) =>
        {
            return a.num.CompareTo(b.num);
        });
    }

    //从小到大排序
    static void Sort2()
    {
        list.Sort((a, b) =>
        {
            return b.num.CompareTo(a.num);
        });
    }

    static NumData Search(string name)
    {
        return list.Find(data => data.name == name);
    }



}
using UnityEngine;
using System.Collections;
using System.Xml;
using System.IO;

public class CreatXML_ReadXML : MonoBehaviour
{

    private ArrayList Adialogue = new ArrayList();
    private ArrayList Bdialogue = new ArrayList();
    private ArrayList textList = new ArrayList();
    public static CreatXML_ReadXML _instance;
    private void Awake()
    {
        _instance = this;
    }
    // Use this for initialization
    void Start()
    {


    }

    // Update is called once per frame
    void Update()
    {

    }

    //void OnGUI()
    //{
    //    if (GUI.Button(new Rect(50, 50, 100, 50), "生成XML"))
    //    {
    //        CreateXML();
    //        Debug.Log("生成XML");
    //    }

    //    if (GUI.Button(new Rect(50, 100, 100, 50), "读取XML"))
    //    {
    //        LoadXml();
    //        Debug.Log("读取XML");
    //    }
    //}

    public void CreateXML(string T1, string NameA, int A, string T2, string NameB, int B, string T3, string NameC, int C, string T4, string NameD, int D, string T5, string NameE, int E)
    {
        string path = Application.streamingAssetsPath + "/testPoint.xml";

        //创建最上一层的节点。
        XmlDocument xml = new XmlDocument();
        //创建最上一层的节点。
        XmlElement root = xml.CreateElement("objects");

        //创建子节点
        XmlElement element = xml.CreateElement("messages1");
        //设置节点的属性
        element.SetAttribute("id", "1");
        XmlElement elementChild1 = xml.CreateElement("contents");
        elementChild1.SetAttribute("name", NameA);
        elementChild1.InnerText = NameA;
        XmlElement elementChild3 = xml.CreateElement("contents2");
        elementChild3.SetAttribute("name2", T1);
        elementChild3.InnerText = T1;
        XmlElement elementChild2 = xml.CreateElement("mission");
        elementChild2.SetAttribute("Value", A.ToString());
        elementChild2.InnerText = A.ToString();
        element.AppendChild(elementChild1);
        element.AppendChild(elementChild3);
        element.AppendChild(elementChild2);
        root.AppendChild(element);

        
        XmlElement element1 = xml.CreateElement("messages2");
        element1.SetAttribute("id", "2");
        XmlElement elementChild11 = xml.CreateElement("contents");
        elementChild11.SetAttribute("name", NameB);
        elementChild11.InnerText = NameB;
        XmlElement elementChild31 = xml.CreateElement("contents2");
        elementChild31.SetAttribute("name2", T2);
        elementChild31.InnerText = T2;
        XmlElement elementChild21 = xml.CreateElement("mission");
        elementChild21.SetAttribute("Value", B.ToString());
        elementChild21.InnerText = B.ToString();
        element1.AppendChild(elementChild11);
        element1.AppendChild(elementChild31);
        element1.AppendChild(elementChild21);
        root.AppendChild(element1);
        
        XmlElement element2 = xml.CreateElement("messages3");
        element2.SetAttribute("id", "3");
        XmlElement elementChild12 = xml.CreateElement("contents");
        elementChild12.SetAttribute("name", NameC);
        elementChild12.InnerText = NameC;
        XmlElement elementChild32 = xml.CreateElement("contents2");
        elementChild32.SetAttribute("name2", T3);
        elementChild32.InnerText = T3;
        XmlElement elementChild22 = xml.CreateElement("mission");
        elementChild22.SetAttribute("Value", C.ToString());
        elementChild22.InnerText = C.ToString();
        element2.AppendChild(elementChild12);
        element2.AppendChild(elementChild32);
        element2.AppendChild(elementChild22);
        root.AppendChild(element2);
        
        XmlElement element3 = xml.CreateElement("messages4");
        element3.SetAttribute("id", "4");
        XmlElement elementChild13 = xml.CreateElement("contents");
        elementChild13.SetAttribute("name", NameD);
        elementChild13.InnerText = NameD;
        XmlElement elementChild33 = xml.CreateElement("contents2");
        elementChild33.SetAttribute("name2", T4);
        elementChild33.InnerText = T4;
        XmlElement elementChild23 = xml.CreateElement("mission");
        elementChild23.SetAttribute("Value", D.ToString());
        elementChild23.InnerText = D.ToString();
        element3.AppendChild(elementChild13);
        element3.AppendChild(elementChild33);
        element3.AppendChild(elementChild23);
        root.AppendChild(element3);
        
        XmlElement element4 = xml.CreateElement("messages5");
        element4.SetAttribute("id", "5");
        XmlElement elementChild14 = xml.CreateElement("contents");
        elementChild14.SetAttribute("name", NameE);
        elementChild14.InnerText = NameE;
        XmlElement elementChild34 = xml.CreateElement("contents2");
        elementChild34.SetAttribute("name2", T5);
        elementChild34.InnerText = T5;
        XmlElement elementChild24 = xml.CreateElement("mission");
        elementChild24.SetAttribute("Value", E.ToString());
        elementChild24.InnerText = E.ToString();
        element4.AppendChild(elementChild14);
        element4.AppendChild(elementChild34);
        element4.AppendChild(elementChild24);
        root.AppendChild(element4);
        

        xml.AppendChild(root);
        //最后保存文件
        xml.Save(path);
        Debug.Log("------------------结束-------------------");
    }


    void LoadXml()
    {
        //创建xml文档
        XmlDocument xml = new XmlDocument();
        XmlDeclaration Declaration = xml.CreateXmlDeclaration("1.0", "utf-8", null);
        xml.Load(Application.streamingAssetsPath + "/testPoint.xml");
        //得到objects节点下的所有子节点
        XmlNodeList xmlNodeList = xml.SelectSingleNode("objects").ChildNodes;
        //遍历所有子节点
        foreach (XmlElement xl1 in xmlNodeList)
        {

            if (xl1.GetAttribute("id") == "1")
            {
                //继续遍历id为1的节点下的子节点
                foreach (XmlElement xl2 in xl1.ChildNodes)
                {
                    print("name+" + xl2.GetAttribute("name") + ":Value+" + xl2.InnerText);

                }
            }
            if (xl1.GetAttribute("id") == "2")
            {
                //继续遍历id为1的节点下的子节点
                foreach (XmlElement xl2 in xl1.ChildNodes)
                {
                    print("name2+" + xl2.GetAttribute("name") + ":Value2+" + xl2.InnerText);

                }
            }
        }

    }


}

using UnityEngine;
using System.Xml;
using System.IO;
using System.Collections;
using UnityEngine.UI;

public class ReadXML : MonoBehaviour
{

    public Image NO1, T1;
    public GameObject MOVE_1, MOVE_2, MOVE_3, MOVE_4;
    // Use this for initialization
    void Start()
    {
        MOVE_1.GetComponent<MoviePlay>().enabled = true;
        MOVE_2.GetComponent<MoviePlay>().enabled = true;
        MOVE_3.GetComponent<MoviePlay>().enabled = true;
        MOVE_4.GetComponent<MoviePlay>().enabled = true;
        MoviePlay._instance.Movie_play();
        LoadXml();
    }

    // Update is called once per frame
    void Update()
    {
        // Debug.Log(name1 + "-----------------" + name2);
        if (Input.GetKeyDown(KeyCode.Escape))
        {
            Application.Quit();
        }
        if (Input.GetMouseButtonDown(1) || Input.GetKeyDown(KeyCode.Keypad9))
        {
            Application.LoadLevel(0);
        }
    }

    void LoadXml()
    {
        //创建xml文档
        XmlDocument xml = new XmlDocument();
        XmlDeclaration Declaration = xml.CreateXmlDeclaration("1.0", "utf-8", null);
        xml.Load(Application.streamingAssetsPath + "/testPoint.xml");
        //得到objects节点下的所有子节点
        XmlNodeList xmlNodeList = xml.SelectSingleNode("objects").ChildNodes;
        //遍历所有子节点
        foreach (XmlElement xl1 in xmlNodeList)
        {

            if (xl1.GetAttribute("id") == "1")
            {
               
                继续遍历id为1的节点下的子节点
                foreach (XmlElement xl2 in xl1.ChildNodes)
                {
                    if (xl2.Name== "contents")
                    {
                        NO1.overrideSprite = Resources.Load(xl2.InnerText, typeof(Sprite)) as Sprite;
                    }
                    if (xl2.Name == "contents2")
                    {
                        T1.overrideSprite = Resources.Load(xl2.InnerText, typeof(Sprite)) as Sprite;
                    }

                }
            }
            //if (xl1.GetAttribute("id") == "2")
            //{
            //    //继续遍历id为1的节点下的子节点
            //    foreach (XmlElement xl2 in xl1.ChildNodes)
            //    {
            //        print("name2+" + xl2.GetAttribute("name") + ":Value2+" + xl2.InnerText);

            //    }
            //}
        }

    }

}




<objects>
  <messages1 id="1">
    <contents name="NO4">NO4</contents>
    <contents2 name2="T4">T4</contents2>
    <mission Value="0">0</mission>
  </messages1>
  <messages2 id="2">
    <contents name="NO5">NO5</contents>
    <contents2 name2="T5">T5</contents2>
    <mission Value="0">0</mission>
  </messages2>
  <messages3 id="3">
    <contents name="NO3">NO3</contents>
    <contents2 name2="T3">T3</contents2>
    <mission Value="0">0</mission>
  </messages3>
  <messages4 id="4">
    <contents name="NO1">NO1</contents>
    <contents2 name2="T1">T1</contents2>
    <mission Value="0">0</mission>
  </messages4>
  <messages5 id="5">
    <contents name="NO2">NO2</contents>
    <contents2 name2="T2">T2</contents2>
    <mission Value="0">0</mission>
  </messages5>
</objects>





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奇大可

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值