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);
        }
    }
相关推荐
老华带你飞1 小时前
考研论坛平台|考研论坛小程序系统|基于java和微信小程序的考研论坛平台小程序设计与实现(源码+数据库+文档)
java·vue.js·spring boot·考研·小程序·毕设·考研论坛平台小程序
CHEN5_021 小时前
leetcode-hot100 11.盛水最多容器
java·算法·leetcode
songx_991 小时前
leetcode18(无重复字符的最长子串)
java·算法·leetcode
在路上`2 小时前
前端学习之后端java小白(三)-sql外键约束一对多
java·前端·学习
dazhong20122 小时前
Spring Boot 项目新增 Module 完整指南
java·spring boot·后端
xrkhy2 小时前
SpringBoot之日志处理(logback和AOP记录操作日志)
java·spring boot·logback
搬山境KL攻城狮3 小时前
MacBook logback日志输出到绝对路径
java·intellij-idea·logback
yb0os13 小时前
RPC实战和核心原理学习(一)----基础
java·开发语言·网络·数据结构·学习·计算机·rpc
liuyao_xianhui3 小时前
内存管理(C/C++)
java·开发语言·c++
superlls3 小时前
(设计模式)区分建造者、 规格模式(MyBatis Example+Criteria )
java·tomcat