Unity中使用xml文件(非序列化)

博客介绍了在Unity中操作xml文件的步骤,包括在StreamingAssets文件夹下新建test.xml文件并编辑内容,新建Test.cs脚本运行后打印相关内容。同时强调xml文件只能建在该文件夹,否则打包exe无法读取,还提及新建节点用的XmlElement类是XmlNode子类,很多xml解析类继承该抽象类。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、在StreamingAssets文件夹下面新建一个test.xml文件。

2、编辑该文件,输入并保存如下内容

<root>
	<username>蔡徐坤</username>
	<password>jinitaimei</password>
	<fans>
		<fan name="张三" age="11"/>
		<fan name="李四" age="12"/>
		<fan name="爱因斯坦" age="18"/>
	</fans>
</root>

3、新建一个Test.cs脚本。

using UnityEngine;
using System.Xml;

public class Test : MonoBehaviour
{
    void Start()
    {
        //初始化一个xml实例
        XmlDocument xmlDocument = new XmlDocument();

        //加载指定xml文件
        xmlDocument.Load(Application.streamingAssetsPath+"/test.xml");

        //指定一个单独节点
        XmlNode rootNode = xmlDocument.SelectSingleNode("root");

        //指定一个username节点;(当前指定了根节点,在使用SelectSingleNode方法时,只会在它的子层寻找,不能找到孙子层)
        XmlNode usernameNode = rootNode.SelectSingleNode("username");

        //打印当前节点的文本(打印结果为蔡徐坤)
        print(usernameNode.InnerText);

        //获取蔡徐坤所有粉丝的根节点 (这里也可以使用xmlDocument对象使用绝对路径查找)
        XmlNode fansNode = xmlDocument.SelectSingleNode("/root/fans");

        //得到所有粉丝
        XmlNodeList fansNodeList = fansNode.ChildNodes;
        foreach (XmlNode fanNode in fansNodeList)
        {
            //获取粉丝属性的两种方式
            print(fanNode.Attributes[0].Value);
            print(fanNode.Attributes.GetNamedItem("age").Value);

            //爱因斯坦不是他的粉丝。移除这个节点
            if (fanNode.Attributes[0].Value == "爱因斯坦")
            {
                fansNode.RemoveChild(fanNode);
            }
        }

        //新建一个粉丝
        XmlElement newFan = xmlDocument.CreateElement("fan");

        //设置新建粉丝属性
        newFan.SetAttribute("name", "吴亦凡");
        newFan.SetAttribute("age", "18");

        //将新建的粉丝加入fans
        fansNode.AppendChild(newFan);

        //保存上面对xmlDocument的操作
        xmlDocument.Save(Application.streamingAssetsPath + "/test.xml");
    }
}

4、运行后,Console打印如下内容

test.xml文件中的内容更改如下

<root>
  <username>蔡徐坤</username>
  <password>jinitaimei</password>
  <fans>
    <fan name="张三" age="11" />
    <fan name="李四" age="12" />
    <fan name="吴亦凡" age="18" />
  </fans>
</root>

注意:

1、xml文件只能建立在StreamingAssets文件夹中。否则打包成exe文件时,程序就不能读取到该文件了。

2、在新建节点时使用的是XmlElement类,它其实是XmlNode的子类。XmlNode是一个抽象类,很多相关于xml解析的类都继承了这个类。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值