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);
        }
    }
相关推荐
太空程序猿20 分钟前
数据类型与变量
java·开发语言
信仰_27399324335 分钟前
RocketMQ事务消息实现订单创建 + 扣减库存
java·rocketmq·java-rocketmq
百***581436 分钟前
Spring Boot 2.7.x 至 2.7.18 及更旧的版本,漏洞说明
java·spring boot·后端
奥吼吼~~1 小时前
标准输入输出stdio和JSON-RPC
网络协议·rpc·json
q***64971 小时前
Spring BOOT 启动参数
java·spring boot·后端
百***78451 小时前
Java实战:Spring Boot application.yml配置文件详解
java·网络·spring boot
你不是我我1 小时前
【Java 开发日记】SQL 语句左连接右连接内连接如何使用,区别是什么?
java·javascript·数据库
七夜zippoe2 小时前
Java性能调优工具篇:JMH基准测试与Profiler(JProfiler/Async-Profiler)使用指南
java·开发语言·jprofiler·jmh·async-profiler
從南走到北2 小时前
JAVA国际版二手车交易二手车市场系统源码支持Android+IOS+H5+APP
android·java·ios
Kuo-Teng2 小时前
LeetCode 19: Remove Nth Node From End of List
java·数据结构·算法·leetcode·链表·职场和发展·list