【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.mzph.cn/news/147576.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

图数据库Neo4J 中文分词查询及全文检索(建立全文索引)

Neo4j的全文索引是基于Lucene实现的,但是Lucene默认情况下只提供了基于英文的分词器,下篇文章我们在讨论中文分词器(IK)的引用,本篇默认基于英文分词来做。我们前边文章就举例说明过,比如我要搜索苹果公司&…

基于SpringBoot+Redis的前后端分离外卖项目-苍穹外卖(五)

公共字段自动填充 1.1 问题分析1.2 实现思路1.3 代码开发1.3.1 步骤一1.3.2 步骤二1.3.3 步骤三 1.4 功能测试 1.1 问题分析 在前面我们已经完成了后台系统的员工管理功能和菜品分类功能的开发,在新增员工或者新增菜品分类时需要设置创建时间、创建人、修改时间、修…

社区分享|杭银消费金融基于MeterSphere开展接口自动化测试

杭银消费金融有限公司(以下简称“杭银消费金融”)成立于2015年12月,是经中国银保监会批准,由杭州银行作为主发起人,联合滴滴出行、中国银泰等企业组建的持牌消费金融机构,注册资本为25.61亿元。杭银消费金融…

Python武器库开发-flask篇之Get与Post(二十五)

flask篇之Get与Post(二十五) 在Flask中通过request对象请求相关的数据,在正常的网页请求的过程中,有两种请求的方式,Get和Post Get请求 我们现在来看看在Flask中是如何以Get方式得到我们想要的值的,通过request.args可以获取Get请求中的所…

深入理解网络协议:通信世界的基石

💂 个人网站:【 海拥】【神级代码资源网站】【办公神器】🤟 基于Web端打造的:👉轻量化工具创作平台💅 想寻找共同学习交流的小伙伴,请点击【全栈技术交流群】 在当今数字化时代,网络协议是连接世…

openGauss通过VIP实现的故障转移

📢📢📢📣📣📣 哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】!😜&am…

机器学习笔记 - Ocr识别中的文本检测EAST网络概述

一、文本检测 文本检测简单来说就是找到图像中可以出现文本的区域。例如,请参见下图,其中在检测到的文本周围绘制了绿色边框。 在进行文本检测时,你可能会遇到两种情况 具有结构化文本的图像:这是指具有干净/均匀背景和常规字体的图像。文本大多密集,行结构正确,…

php连接sqlserver 安装sqlserver 驱动windows系统

第一步下载Windows 上的 Microsoft ODBC Driver for SQL Server ODBC 驱动程序 Microsoft ODBC Driver for SQL Server 直接下载安装即可,安装后可查看安装版本 第二步:下载php_sqlsrv 驱动 安装解压后,会有对应php版本的驱动文件&#xf…

Python hashlib 模块详细教程:安全哈希与数据完整性保护

更多Python学习内容:ipengtao.com 大家好,我是涛哥,今天为大家分享 Python hashlib 模块详细教程,文章6500字,阅读大约17分钟,大家enjoy~~ hashlib模块为Python提供了一种简便的方式来使用各种哈希算法&…

leetcode系列(双语)003——GO无重复字符的最长子串

文章目录 003、Longest Substring Without Repeating Characters个人解题官方解题扩展 003、Longest Substring Without Repeating Characters 无重复字符的最长子串 Given a string s, find the length of the longest substring without repeating characters. 给定一个字符…

【Linux】进程替换|exec系列函数

文章目录 一、看一看单进程版的进程替换二、进程替换的原理三、多进程版——验证各种程序替换接口exec系列函数execlexeclpexecvexecvp tipsexecleexecve 四、总结 一、看一看单进程版的进程替换 #include<stdio.h> #include<unistd.h> #include<stdlib.h>i…

电子学会C/C++编程等级考试2021年12月(一级)真题解析

C/C++等级考试(1~8级)全部真题・点这里 第1题:输出整数部分 输入一个双精度浮点数f, 输出其整数部分。 时间限制:1000 内存限制:65536输入 一个双精度浮点数f(0 < f < 100000000)。输出 一个整数,表示浮点数的整数部分。样例输入 3.8889样例输出 3 答案: //参…

vue项目中使用vant轮播图组件(桌面端)

一. 内容简介 vue使用vant轮播图组件(桌面端) 二. 软件环境 2.1 Visual Studio Code 1.75.0 2.2 chrome浏览器 2.3 node v18.14.0 三.主要流程 3.1 安装环境 3.2 添加代码 3.3 结果展示 四.具体步骤 4.1 安装环境 先安装包 # Vue 3 项目&#xff0c;安装最新版 Va…

获取虎牙直播源

为了今天得LOL总决赛 然后想着下午看看 但是网页看占用高 就想起来有个直播源 也不复杂看了大概一个小时 没啥问题 进入虎牙页面只有 直接F12 网络 然后 看这个长条 一直在获取 发送 那就选中这个区间 找到都是数字这一条 如果直接访问的话会一直下载 我这都取消了 然后 打开…

关于新版的Maven创建Maven项目的时候只有Maven Archetype,而找不到Maven的这个问题

问题情况 : 在最近的学习过程中&#xff0c;想要创建一个Maven模块用于分块设计&#xff0c;但是在idea里面创建Maven项目的时候&#xff0c;发现与maven相关的只有Maven Archetype这个模块&#xff0c;然后找不到单纯的Maven模块&#xff1b;就像下面这样 : 解决方案 : 其…

大数据Doris(二十五):数据导入演示和其他导入案例

文章目录 数据导入演示和其他导入案例 一、数据导入演示

【每日一题】—— C. Yarik and Array(Codeforces Round 909 (Div. 3))(贪心)

&#x1f30f;博客主页&#xff1a;PH_modest的博客主页 &#x1f6a9;当前专栏&#xff1a;每日一题 &#x1f48c;其他专栏&#xff1a; &#x1f534; 每日反刍 &#x1f7e1; C跬步积累 &#x1f7e2; C语言跬步积累 &#x1f308;座右铭&#xff1a;广积粮&#xff0c;缓称…

【STM32】RTC(实时时钟)

1.RTC简介 本质&#xff1a;计数器 RTC中断是外部中断&#xff08;EXTI&#xff09; 当VDD掉电的时候&#xff0c;Vbat可以通过电源--->实时计时 STM32的RTC外设&#xff08;Real Time Clock&#xff09;&#xff0c;实质是一个 掉电 后还继续运行的定时器。从定时器的角度…

科技创新 共铸典范 | 江西卫健办邓敏、飞图影像董事长洪诗诗一行到访拓世科技集团,提振公共卫生事业发展

2023年11月15日&#xff0c;拓世科技集团总部迎来了江西省卫健项目办项目负责人邓敏、江西飞图影像科技有限公司董事长洪诗诗一行的考察参观&#xff0c;集团董事长李火亮、集团高级副总裁方高强进行热情接待。此次多方交流&#xff0c;旨在共同探讨携手合作&#xff0c;激发科…

ClickHouse建表优化

1. 数据类型 1.1 时间字段的类型 建表时能用数值型或日期时间型表示的字段就不要用字符串&#xff0c;全String类型在以Hive为中心的数仓建设中常见&#xff0c;但ClickHouse环境不应受此影响。 虽然ClickHouse底层将DateTime存储为时间戳Long类型&#xff0c;但不建议存储Long…