当前位置: 首页 > news >正文

【Unity】XML文件的解析和生成

目录

使用XPath路径语法解析

使用xml语法解析

XML文件的生成


XML文件是一种常用的数据交换格式,它以文本形式存储数据,并使用标签来描述数据。解析和生成XML文件是软件开发中常见的任务。

解析XML文件是指从XML文件中读取数据的过程。在.NET中,可以使用XmlDocument类来解析XML文件。下面介绍两种方法来解析XML文件。

  • 我们使用XmlDocument类加载XML文件,并使用XPath表达式选择需要读取的节点。然后,我们可以使用Attributes属性获取节点的属性,并使用InnerText属性获取节点的文本内容。
  • 如果节点包含子节点,可以使用ChildNodes属性获取子节点的集合,并使用相同的方法获取子节点的属性或文本内容。

使用XPath路径语法解析

        //2、使用XPath语法解析 路径//创建xml对象XmlDocument xml = new XmlDocument();//读取xml文件xml.Load(Application.dataPath + "/Hokag.xml");// 使用XPath语法解析路径,获取所有名为"HokagInfor"的元素  // SelectNodes方法返回一个XmlNodeList对象,该对象包含所有匹配的元素XmlNodeList nodeList = xml.SelectNodes("Hokags/HokagInfor");// 对获取到的每个"HokagInfor"元素进行操作 foreach (XmlElement item in nodeList){Hokag hokag = new Hokag();//获取特性string id = item.GetAttribute("id");//获取子节点的值hokag.Name = item.ChildNodes[0].InnerText;hokag.Age = Int32.Parse(item.ChildNodes[1].InnerText);hokag.Skill = item.ChildNodes[2].InnerText;Debug.Log(id + ": " + hokag);}

使用xml语法解析

        //1、使用xml语法解析//创建xml对象XmlDocument xml = new XmlDocument();//读取xml文件xml.Load(Application.dataPath + "/Hokag.xml");//获取根节点XmlNode root = xml.LastChild;//获取根节点的子节点XmlNodeList nodeList = root.ChildNodes;foreach (XmlElement item in nodeList){Hokag hokag = new Hokag();//获取特性string id = item.GetAttribute("id");//获取子节点的值hokag.Name = item.ChildNodes[0].InnerText;hokag.Age = Int32.Parse(item.ChildNodes[1].InnerText);hokag.Skill = item.ChildNodes[2].InnerText;Debug.Log(id + ": " + hokag);}

解析完成

XML文件的生成

生成XML文件是指将数据以XML格式写入文件的过程。在.NET中,可以使用XmlDocument类来生成XML文件。

使用XmlDocument类创建一个空的XML文档。然后,我们使用CreateElement方法创建需要添加到XML文档中的元素,并使用SetAttribute方法为元素添加属性。如果需要添加子节点,可以使用AppendChild方法将子节点添加到父节点中。最后,我们使用Save方法将XML文档保存到文件中。

  //3.生成xml//创建xml对象XmlDocument xml = new XmlDocument();//创建声明xml.AppendChild(xml.CreateXmlDeclaration("1.0", "UTF-8", null));//创建根节点XmlNode root = xml.CreateElement("Hokags");//设置根节点xml.SelectSingleNode(root.ToString());//添加xml.AppendChild(root);//创建根节点的子节点XmlElement hokagInfor = xml.CreateElement("HokagInfor");hokagInfor.SetAttribute("id", "1");//创建子节点XmlElement nameElement = xml.CreateElement("Name");XmlElement ageElement = xml.CreateElement("age");XmlElement skillElement = xml.CreateElement("Skill");nameElement.InnerText = "漩涡鸣人";ageElement.InnerText = "20";skillElement.InnerText = "嘴遁";hokagInfor.AppendChild(nameElement);hokagInfor.AppendChild(ageElement);hokagInfor.AppendChild(skillElement);root.AppendChild(hokagInfor);//文件保存xml.Save(Application.dataPath + "/HokagInformation.xml");

 生成完成

 

http://www.lryc.cn/news/233663.html

相关文章:

  • Vue h5页面手指滑动图片
  • Python类属性下划线的意义
  • DbUtils概述
  • 大数据基础设施搭建 - Hadoop
  • 测试开发环境下centos7.9下安装docker的minio
  • Django之模版层
  • spark性能调优 | 内存优化
  • 【PG】PostgreSQL高可用之自动故障转移-repmgrd
  • 操作系统OS/存储管理/内存管理/内存管理的主要功能_基本原理_要求
  • 【手写数据库toadb】SQL解析器的实现架构,create table/insert 多values语句的解析树生成流程和输出结构分析
  • 设计模式-备忘录模式-笔记
  • 机器学习—基本术语
  • pytorch单精度、半精度、混合精度、单卡、多卡(DP / DDP)、FSDP、DeepSpeed模型训练
  • 基于PHP的纺织用品商城系统
  • Go使用命令行输出二维码
  • 最长连续序列[中等]
  • 设计模式-状态模式-笔记
  • Java中for、foreach、stream区别和性能比较
  • [CSS] 文本折行
  • 033-从零搭建微服务-日志插件(一)
  • 短期经济波动:均衡国民收入决定理论(三)
  • 电力感知边缘计算网关产品设计方案-网关软件架构
  • 最新AI创作系统ChatGPT系统运营源码/支持最新GPT-4-Turbo模型/支持DALL-E3文生图
  • Java使用Redis的几种客户端介绍
  • 程序员的护城河
  • 常见面试题-MySQL软删除以及索引结构
  • 信号的机制——信号处理函数的注册
  • JS-项目实战-鼠标悬浮变手势(鼠标放单价上生效)
  • redis运维(十一) python操作redis
  • 黑马程序员微服务 第五天课程 分布式搜索引擎2