当前位置: 首页 > 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");

 生成完成

 

相关文章:

  • 建造者模式(创建型)
  • 网络安全-学习手册
  • 蓝牙耳机仓设计的单芯片解决方案
  • 信息的浏览
  • 002.文件管理
  • MongoDB备份与恢复以及导入导出
  • C#中数组、ArrayList与List对象的区别及使用场景
  • Windows系统中搭建docker (ubuntu,Docker-desktop)
  • JUNIT使用和注意、以及断言的介绍使用、SpringBoot Test测试类的使用、maven配置使用junit详细介绍
  • pipeline + node +jenkins+kubernetes部署yarn前端项目
  • V10 桌面版、服务器版系统加固
  • WhatsApp账号被封?看看是不是你的原因!
  • 释放生成式AI的巨大潜力,德勤中国与亚马逊云科技共建生成式AI联合实验室
  • Windows 安装 汉化版 burp suite
  • CC攻击的前身
  • [Vue CLI 3] 配置解析之 css.extract
  • CODING 缺陷管理功能正式开始公测
  • Java 实战开发之spring、logback配置及chrome开发神器(六)
  • Javascript编码规范
  • linux学习笔记
  • Redis提升并发能力 | 从0开始构建SpringCloud微服务(2)
  • vue.js框架原理浅析
  • 从伪并行的 Python 多线程说起
  • 翻译 | 老司机带你秒懂内存管理 - 第一部(共三部)
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 京东美团研发面经
  • 前端之Sass/Scss实战笔记
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • [Shell 脚本] 备份网站文件至OSS服务(纯shell脚本无sdk) ...
  • 新海诚画集[秒速5センチメートル:樱花抄·春]
  • ​Linux Ubuntu环境下使用docker构建spark运行环境(超级详细)
  • ​卜东波研究员:高观点下的少儿计算思维
  • ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTr
  • #1014 : Trie树
  • #if和#ifdef区别
  • (145)光线追踪距离场柔和阴影
  • (20)目标检测算法之YOLOv5计算预选框、详解anchor计算
  • (附源码)springboot“微印象”在线打印预约系统 毕业设计 061642
  • (十)【Jmeter】线程(Threads(Users))之jp@gc - Stepping Thread Group (deprecated)
  • (新)网络工程师考点串讲与真题详解
  • (一)Neo4j下载安装以及初次使用
  • (终章)[图像识别]13.OpenCV案例 自定义训练集分类器物体检测
  • (转)项目管理杂谈-我所期望的新人
  • .【机器学习】隐马尔可夫模型(Hidden Markov Model,HMM)
  • .bat批处理(三):变量声明、设置、拼接、截取
  • .NET 事件模型教程(二)
  • .Net7 环境安装配置
  • .NET开源快速、强大、免费的电子表格组件
  • //解决validator验证插件多个name相同只验证第一的问题
  • @Autowired多个相同类型bean装配问题
  • @cacheable 是否缓存成功_让我们来学习学习SpringCache分布式缓存,为什么用?
  • @column注解_MyBatis注解开发 -MyBatis(15)
  • @media screen 针对不同移动设备
  • @RequestParam @RequestBody @PathVariable 等参数绑定注解详解
  • [ vulhub漏洞复现篇 ] Jetty WEB-INF 文件读取复现CVE-2021-34429