1.10 Unity中的数据存储 XML

一、XML

1.介绍

  • XML是一个文档后缀名是*.xml
  • XML是一个特殊格式的文档
  • XML是可扩展的标记性语言
  • XML是Extentsible Markup Language的缩 写
  • XML是由万维网联盟(W3C)创建的标记语言,用于定义编码人类和机器可以读取的文档的语法。它通过使用定义文档结构的标签以及如何存储和传输文档来实现这一点。

2.结构

3.生成

4.示例

cs 复制代码
using UnityEngine;
using UnityEngine.UI;
using System.Xml;

public class DataTest : MonoBehaviour
{
    public Button b1;
    void Start()
    {
        b1.onClick.AddListener(CreateXML);
    }
    public void CreateXML()
    {
        //创建xml文件
        XmlDocument doc = new XmlDocument();
        //创建xml头
        XmlNode xmlNode = doc.CreateXmlDeclaration("1.0", "utf-8", null);
        //添加xml头
        doc.AppendChild(xmlNode);
        //创建xml根节点
        XmlElement root = doc.CreateElement("users");
        //添加xml根节点
        doc.AppendChild(root);

        //通过XmlNode创建根节点的子节点
        XmlNode xn_enement = doc.CreateNode(XmlNodeType.Element, "Name", null);
        XmlNode xn_enement2 = doc.CreateNode(XmlNodeType.Element, "Age", null);
        //设置子节点的值
        xn_enement.InnerText = "张三";
        xn_enement2.InnerText = "18";
        //创建属性
        XmlAttribute xa = doc.CreateAttribute("name");
        XmlAttribute xa2 = doc.CreateAttribute("age");
        //设置属性值
        xa.Value = "12345";
        xa2.Value = "";
        //获取元素的document
        XmlDocument xd = xn_enement.OwnerDocument;
        //设置元素属性
        xn_enement.Attributes.SetNamedItem(xa);
        xn_enement2.Attributes.SetNamedItem(xa2);


        //通过XmlElement再创建一个根节点的子节点
        XmlElement element = doc.CreateElement("sex");
        element.SetAttribute("性别", "");
        element.InnerText = "男";

        //添加到子节点到root结点
        root.AppendChild(xn_enement);
        root.AppendChild(xn_enement2);
        root.AppendChild(element);

        //保存xml
        doc.Save(Application.dataPath+"/test.xml");  
    }
}

5.读取和添加

cs 复制代码
    void AddXMLData()
    {
        string path = Application.dataPath + "/test3.xml";
        if (File.Exists(path))
        {
            XmlDocument xml = new XmlDocument();
            xml.Load(path);
            XmlNode root = xml.SelectSingleNode("users");

            XmlElement elementChild1 = xml.CreateElement("Hobby");
            elementChild1.SetAttribute("爱好", "");
            elementChild1.InnerText = "睡大觉";

            //把节点添加至xml中,注意他们之间的先后顺序,这是生成XML文件的顺序
            root.AppendChild(elementChild1);
            //最后保存文件
            xml.Save(path);
        }
    }
相关推荐
摇滚侠2 分钟前
SpringMVC 入门到实战 文件上传 75-77
java·后端·spring·maven·intellij-idea
GIS数据转换器10 分钟前
城市排水生命线安全运行监测平台深度解析
java·运维·人工智能·python·安全·数据挖掘·无人机
华如锦1 小时前
面了很多 Java转AI Agent方向,一些面试题总结
java·开发语言·人工智能·python·ai
睡不醒男孩0308231 小时前
CLup 6.x 版本中针对StarRocks 存算一体集群的完整操作手册
java·服务器·网络·clup
程序员黑豆2 小时前
Java中怎么实现字符串拼接呢【AI全栈开发】
java
java1234_小锋2 小时前
LangChain4j 开发Java Agent智能体- 多模态支持
java·开发语言·langchain4j
艳阳天_.2 小时前
星瀚弹框页面实现
java·前端·python
小熊美家熊猫系统3 小时前
电子合同技术实现与合规实践
java·开发语言·分布式
云烟成雨TD3 小时前
Agent Scope Java 2.x 系列【3】从零构建 ReActAgent
java·人工智能·agent