中文字幕无码a片久久,亚洲日韩在线观看浪潮,人人超人人超碰超国产二区,国产人妻久久一区二区,国产人妻久久一区二区

福感科技有限公司 歡迎您!
聯(lián)系方式

    地址:北京市平谷區(qū)馬坊鎮(zhèn)金河北街17號院3號樓7層712

    電話:010-89968230

    網(wǎng)站:http://0743119.com

Xml文件操作(創(chuàng)建、讀取、寫入、修改)

2025-5-30 14:10:11??????點(diǎn)擊:

創(chuàng)建Xml文件

創(chuàng)建Xml需要注意層級,一層有一層的添加到xml中:

using System.IO;
using System.Xml;
using UnityEngine;

public class Demo5 : MonoBehaviour
{
    void Start()
    {
        CreateXML();
    }

    //創(chuàng)建XML
    void CreateXML()
    {
        string path = Application.streamingAssetsPath + "/data.xml";
        //創(chuàng)建xml文檔
        XmlDocument xml = new XmlDocument();
        //創(chuàng)建根節(jié)點(diǎn)
        XmlElement root = xml.CreateElement("Node");

        //創(chuàng)建根節(jié)點(diǎn)的子節(jié)點(diǎn)
        XmlElement element = xml.CreateElement("Person");
        //設(shè)置根節(jié)點(diǎn)的子節(jié)點(diǎn)的屬性
        element.SetAttribute("id", "1");
        //添加兩個子節(jié)點(diǎn)到根節(jié)點(diǎn)的子節(jié)點(diǎn)的下面
        XmlElement elementChild1 = xml.CreateElement("Name");
        elementChild1.SetAttribute("name", "");
        elementChild1.InnerText = "王五";
        XmlElement elementChild2 = xml.CreateElement("Age");
        elementChild2.SetAttribute("age", "");
        elementChild2.InnerText = "18";
        //把節(jié)點(diǎn)一層一層的添加至xml中,注意他們之間的先后順序,這是生成XML文件的順序
        element.AppendChild(elementChild1);
        element.AppendChild(elementChild2);
        //再創(chuàng)建一個根節(jié)點(diǎn)的子節(jié)點(diǎn)
        XmlElement element2 = xml.CreateElement("Person");
        //設(shè)置根節(jié)點(diǎn)的子節(jié)點(diǎn)的屬性 名字一樣 屬性不一樣也可以
        element2.SetAttribute("id", "2");
        //添加兩個子節(jié)點(diǎn)到根節(jié)點(diǎn)的子節(jié)點(diǎn)的下面
        XmlElement elementChild3 = xml.CreateElement("Name");
        elementChild3.SetAttribute("name", "");
        elementChild3.InnerText = "李四";
        XmlElement elementChild4 = xml.CreateElement("Age");
        elementChild4.SetAttribute("age", "");
        elementChild4.InnerText = "22";
        element2.AppendChild(elementChild3);
        element2.AppendChild(elementChild4);
        //把節(jié)點(diǎn)一層一層的添加至xml中,注意他們之間的先后順序,這是生成XML文件的順序
        root.AppendChild(element);
        root.AppendChild(element2);
        xml.AppendChild(root);
        //*后保存文件
        xml.Save(path);
    }
}

讀取Xml文件

讀取Xml,需要從根節(jié)點(diǎn)一層一層往下找,根節(jié)點(diǎn)找子節(jié)點(diǎn),子節(jié)點(diǎn)找孫節(jié)點(diǎn)。


我們就先以查找屬性的方式找到我們需要的節(jié)點(diǎn)數(shù)據(jù):

using System.IO;
using System.Xml;
using UnityEngine;

public class Demo5 : MonoBehaviour
{
    void Start()
    {
        LoadXml();
    }

    //讀取XML
    void LoadXml()
    {
        XmlDocument xml = new XmlDocument();
        xml.Load(Application.streamingAssetsPath + "/data.xml");
        XmlNodeList xmlNodeList = xml.SelectSingleNode("Node").ChildNodes;
        //遍歷所有子節(jié)點(diǎn)
        foreach (XmlElement xl1 in xmlNodeList)
        {
            if (xl1.GetAttribute("id") == "1")
            {
                //繼續(xù)遍歷id為1的節(jié)點(diǎn)下的子節(jié)點(diǎn)
                foreach (XmlElement xl2 in xl1.ChildNodes)
                {
                    if (xl2.GetAttribute("name") == "")
                    {
                        Debug.Log(xl2.InnerText);
                    }
                    else if (xl2.GetAttribute("age") == "")
                    {
                        Debug.Log(xl2.InnerText);
                    }
                }
            }
        }
    }
}
根據(jù)節(jié)點(diǎn)的名字進(jìn)行查找:


using System.IO;
using System.Xml;
using UnityEngine;

public class Demo5 : MonoBehaviour
{
    void Start()
    {
        ReadXml();
    }

    //讀取XML
    void ReadXml()
    {
        XmlDocument xml = new XmlDocument();
        xml.Load(Application.streamingAssetsPath + "/data.xml");
        XmlNodeList xmlNodeList = xml.SelectSingleNode("Node").ChildNodes;
        //遍歷所有子節(jié)點(diǎn)
        foreach (XmlElement xl1 in xmlNodeList)
        {
            if (xl1.Name == "Person" && xl1.GetAttribute("id") == "1")
            {
                //繼續(xù)遍歷名字叫做Person,id為1的節(jié)點(diǎn)下的子節(jié)點(diǎn)
                foreach (XmlElement xl2 in xl1.ChildNodes)
                {
                    if (xl2.Name == "Name")
                    {
                        Debug.Log(xl2.InnerText);
                    }
                    else if (xl2.Name == "Age")
                    {
                        Debug.Log(xl2.InnerText);
                    }
                }
            }
        }
    }
}
不知道名字屬性怎么辦


using System.IO;
using System.Xml;
using UnityEngine;

public class Demo5 : MonoBehaviour
{
    void Start()
    {
        ReadXml();
    }

    //讀取XML
    void ReadXml()
    {
        XmlDocument xml = new XmlDocument();
        xml.Load(Application.streamingAssetsPath + "/data.xml");
        //獲取根節(jié)點(diǎn)
        XmlNode rootNode = xml.FirstChild;
        XmlNodeList nodeList = rootNode.ChildNodes;
        //遍歷所有子節(jié)點(diǎn)
        int Count = nodeList.Count;
        for (int i = 0; i < Count; i++)
        {
            Debug.Log(nodeList.Item(i).InnerText);
        }
    }
}

修改Xml文件

修改Xml文件的數(shù)據(jù),就需要根據(jù)節(jié)點(diǎn)的名字或者節(jié)點(diǎn)的屬性找到對應(yīng)的節(jié)點(diǎn)修改數(shù)據(jù),之后保存文件即可:

using System.IO;
using System.Xml;
using UnityEngine;

public class Demo5 : MonoBehaviour
{
    void Start()
    {
        UpdateXML();
    }

    //修改XML
    void UpdateXML()
    {
        string path = Application.streamingAssetsPath + "/data.xml";
        if (File.Exists(path))
        {
            XmlDocument xml = new XmlDocument();
            xml.Load(path);
            XmlNodeList xmlNodeList = xml.SelectSingleNode("Node").ChildNodes;
            foreach (XmlElement xl1 in xmlNodeList)
            {
                if (xl1.GetAttribute("id") == "1")
                {
                    //把id為1的屬性改為5
                    xl1.SetAttribute("id", "5");
                }
                if (xl1.GetAttribute("id") == "2")
                {
                    foreach (XmlElement xl2 in xl1.ChildNodes)
                    {
                        if (xl2.Name == "Name")
                        {
                            //修改其里面的內(nèi)容
                            xl2.SetAttribute("name", "abc");
                            xl2.InnerText = "趙六";
                        }
                    }
                }
            }
            xml.Save(path);
        }
    }
}

添加數(shù)據(jù)

using System.IO;
using System.Xml;
using UnityEngine;

public class Demo5 : MonoBehaviour
{
    void Start()
    {
        AddXMLData();
    }

    //添加XML
    void AddXMLData()
    {
        string path = Application.streamingAssetsPath + "/data.xml";
        if (File.Exists(path))
        {
            XmlDocument xml = new XmlDocument();
            xml.Load(path);
            XmlNode root = xml.SelectSingleNode("Node");
            XmlElement element = xml.CreateElement("Person");
            //設(shè)置節(jié)點(diǎn)的屬性
            element.SetAttribute("id", "2");
            XmlElement elementChild1 = xml.CreateElement("Name");
            elementChild1.SetAttribute("name", "ced");
            elementChild1.InnerText = "李四";
            XmlElement elementChild2 = xml.CreateElement("Age");
            elementChild2.SetAttribute("age", "123");
            elementChild2.InnerText = "11";
            //把節(jié)點(diǎn)一層一層的添加至xml中,注意他們之間的先后順序,這是生成XML文件的順序
            element.AppendChild(elementChild1);
            element.AppendChild(elementChild2);
            root.AppendChild(element);
            xml.AppendChild(root);
            //*后保存文件
            xml.Save(path);
        }
    }
}

添加數(shù)據(jù)使用AppendChild()函數(shù)進(jìn)行添加。

本文內(nèi)容整理來自網(wǎng)絡(luò),版權(quán)歸原作者所有如有問題,請聯(lián)系我們!

Copyright 2019 0743119.com

福感科技有限公司 版權(quán)所有 All Rights Reserved

京ICP備20002031號

010-89968230