IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> Unity XML 新建 查询 修改 增加 删除 -> 正文阅读

[游戏开发]Unity XML 新建 查询 修改 增加 删除

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

public class xmll : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
LoadXml("/coom.xml");
ModifyXML("/coom.xml");
DeleteXML("/coom.xml");
AddXML("/coom.xml");
EstablishXML();
}

void LoadXml(string path)
{
    XmlDocument xd = new XmlDocument();
    //加载路径
    xd.Load(Application.streamingAssetsPath + path);
    //查找根节点并得到
    XmlNode RootNode = xd.SelectSingleNode("root");
    //查找初始状态子集点
    XmlNodeList BeginNode = RootNode.SelectNodes("BeginStatus");
    //遍历子节点并添加到队列中,获取详细信息
    foreach (XmlNode item in BeginNode)
    {
        XmlElement BeginXmlEle = (XmlElement)item;
        BeginStatusobj bs = new BeginStatusobj()
        {
            id = int.Parse(BeginXmlEle.GetAttribute("id")),
            ObjName = BeginXmlEle.GetAttribute("Name"),
            Type = BeginXmlEle.GetAttribute("Type"),
        };

        print(bs.id);
        print(bs.ObjName);
        print(bs.Type);
    }


    XmlNodeList StepNode1 = RootNode.SelectNodes("Step");
    //遍历子节点并添加到队列中,获取详细信息
    foreach (XmlNode item in StepNode1)
    {
        XmlElement StepXmlEle = (XmlElement)item;
        Pract bs = new Pract()
        {
            id = int.Parse(StepXmlEle.GetAttribute("id")),
            ObjName = StepXmlEle.GetAttribute("Name"),
            Type = StepXmlEle.GetAttribute("Type"),
        };
        //若此条xml数据中有entext 则执行这一步
        if (StepXmlEle.HasAttribute("entext"))
        {
            bs.entext = StepXmlEle.GetAttribute("entext");
        }

        if (StepXmlEle.HasAttribute("Angle"))
        {
            
           bs.Angle =int.Parse(StepXmlEle.GetAttribute("Angle"));
        }

        print(bs.id);
        print(bs.ObjName);
        print(bs.Type);
        print(bs.entext);
        print(bs.Angle);
    }

    XmlNodeList EndNode = RootNode.SelectNodes("End");

    foreach (XmlNode item in EndNode)
    {
        XmlElement EndElem = (XmlElement)item;
        //拆解整条数据
        print(EndElem.GetAttribute("id"));
        print(EndElem.GetAttribute("Name"));
        print(EndElem.GetAttribute("Type"));

    }
}

//修改XML
void ModifyXML(string path)
{
    //方法一  全局查找  不管有多少个子节点  
    //XmlDocument xd = new XmlDocument();
    加载路径
    //xd.Load(Application.streamingAssetsPath + path);
    查找根节点并得到
    //XmlNodeList xl = xd.SelectSingleNode("root").ChildNodes;

    //foreach (XmlElement item in xl)
    //{
    //    if (item.GetAttribute("id")=="1")
    //    {
    //        item.SetAttribute("id", "5");
    //    }
    //}

    //方法二  定向查找 适合多个子节点
    XmlDocument xd = new XmlDocument();
    //加载路径
    xd.Load(Application.streamingAssetsPath + path);
    //查找根节点并得到
    XmlNode RootNode = xd.SelectSingleNode("root");
    //查找初始状态子集点
    XmlNodeList BeginNode = RootNode.SelectNodes("BeginStatus");
    //遍历子节点并添加到队列中,获取详细信息
    foreach (XmlNode item in BeginNode)
    {
        XmlElement BeginXmlEle = (XmlElement)item;
        if (BeginXmlEle.GetAttribute("id")=="1")
        {
            BeginXmlEle.SetAttribute("id", "5");
        }

    }
        xd.Save(Application.streamingAssetsPath + path);
}
//删除节点
void DeleteXML(string path)
{
    XmlDocument xd = new XmlDocument();
    //加载路径
    xd.Load(Application.streamingAssetsPath + path);
    //查找根节点并得到
    XmlNode RootNode = xd.SelectSingleNode("root");
    //查找初始状态子集点
    XmlNodeList BeginNode = RootNode.SelectNodes("BeginStatus");
    //遍历子节点并添加到队列中,获取详细信息
    foreach (XmlNode item in BeginNode)
    {
        XmlElement BeginXmlEle = (XmlElement)item;
        if (BeginXmlEle.GetAttribute("id") == "5")
        {
            BeginXmlEle.RemoveAll();//只会删除字段  不会删除节点
            BeginXmlEle.ParentNode.RemoveChild(BeginXmlEle);//会将子节点删除
        }

    }
    xd.Save(Application.streamingAssetsPath + path);
}

//增加子节点
void AddXML(string path)
{
    XmlDocument xd = new XmlDocument();
    //加载路径
    xd.Load(Application.streamingAssetsPath + path);
    //查找根节点并得到
    XmlNode RootNode = xd.SelectSingleNode("root");
    //创建根节点下的子节点
    XmlElement xe = xd.CreateElement("Star");
    xe.SetAttribute("id", "2");
    xe.SetAttribute("Name", "po");
    xe.SetAttribute("Type", "54");

    RootNode.AppendChild(xe);//添加元素

    //在已有的子节点添加数据
    XmlElement xet = xd.CreateElement("End");
    RootNode.AppendChild(xet);
    for (int i = 0; i < RootNode.ChildNodes.Count; i++)
    {
        XmlElement xmlelem = RootNode.ChildNodes[i] as XmlElement;

        if (xmlelem.GetAttribute("id")=="1")//在所有id=1的下面添加新的数据
        {
            XmlElement xmlt = xd.CreateElement("End");
            xmlt.SetAttribute("id", "2");
            xmlelem.AppendChild(xmlt);
        }
    }


    xd.Save(Application.streamingAssetsPath + path);
}

//创建xml文件
void EstablishXML()
{
    
    XmlDocument xd = new XmlDocument();
    //创建最上面一层的节点
    XmlElement root = xd.CreateElement("Root");
    //创建子节点
    XmlElement element = xd.CreateElement("Start");
    //设置节点属性
    element.SetAttribute("id", "1");
    element.SetAttribute("Name", "op");
    element.SetAttribute("Type", "ui");
    //设置数据内面
    element.InnerText = "kldjfkldsj";
    XmlElement element1 = xd.CreateElement("Start");
    //设置节点属性
    element1.SetAttribute("id", "2");
    element1.SetAttribute("Name", "op");
    element1.SetAttribute("Type", "ui");
    root.AppendChild(element1);
    root.AppendChild(element);
    xd.AppendChild(root);
    xd.Save(Application.streamingAssetsPath + "/coo.xml");

}

}

public class BeginStatusobj
{
public int id;
public string ObjName;
public string Type;
}

public class Pract
{
public int id;

public string ObjName;

public string Type;

public string entext;

public int Angle;

}

xml 文件
coom
在这里插入图片描述

coo 创建后的
在这里插入图片描述

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2021-07-11 16:54:52  更:2021-07-11 16:55:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 8:49:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码