Unity 读取和修改XML文档
1.Unity 读取XML文档
(1) 创建一个无继承实体类Class01,一个纯C#无继承的实体类Class02.
(2) Class01根据XML文档中的内容设置具体的字段,并且设置get/set。(一般来说XML保存的数据会有多组,以武器为例,武器有刀,剑,枪等等。但是他们的数据类型会是一致的,攻击力,耐久值)
(3) Class02创建public List<Cloos01> = new List<Cloos01>() ;用来存储Class01的集合
(4) 在Class02中设置一个有参函数:ReadXMLByPath(string path){} 读取XML中的数据。这个函数需要对应XML文档的地址才能调用。
① 包含XML文档的头文件 using System.XML;
② 实例化一个XmlDocument对象dor;
③ dor.Load(path)或者dor.LoadXml(path)读取到文档;
(5) 下面是具体代码。
<Arms><Knife><Name>大刀</Name><Attack>50</Attack><Durable>150</Durable></Knife><Sword><Name>直剑</Name><Attack>30</Attack><Durable>100</Durable></Sword><Spear><Name>长枪</Name><Attack>100</Attack><Durable>80</Durable></Spear>
</Arms>
public class Class01
{private string armsName; //武器名private string attack; //攻击力private string durable; //耐久//有参构造函数public Class01(string arms , string attack , string durable){this.armsName = arms;this.attack= attack ;this.durable= durable;}public ArmsName{get { return armsName; }set { armsName = Value; }}public Attack{get { return attack; }set { attack = Value; }}public Durable{get { return durable; }set { durable = Value; }}
}
using System.Collections;
using System.Collections.Generic;
using System.Xml;
public class class02
{//用于存储Class01的实体集合public List<Class01> ClassList = new List<Class01>();/// <summary>/// 通过路径读取XML中的数据/// </summary>/// <param name="path">路径</param>public void ReadXMLByPath(string path){//实例化一个XML对象XmlDocument dor = new XmlDocument();//加载文档//dor.Load(path);dor.LoadXml(path);//获取文档中的根节点XmlNode root = dor.SelectSingleNode("Arms");//获取子节点XmlNodeList nodeList = root.ChildNodes;//遍历foreach (XmlNode node in nodeList){string armsName = node.ChildNodes[0].InnerText;string attack = node.ChildNodes[1].InnerText;string durable = node.ChildNodes[2].InnerText;//遍历输出测试//string info = string.Format("name:{0},attack:{1},durable:{2},price:{3}", armsName, attack, durable);//Debug.Log(info);Class01 item = new Class01(armsName, attack, durable);//实例化Class01ClassList.Add(item);//将Class01添加到ClassList中}}
}
此XML文档中的数据按照武器类型分成三份数据存储在ClassList集合中。
需要使用的时候通过实例化Class02来调用ClassList里面的数据。
2.Unity 修改XML文档
(1)仍然使用上一个示例。
(2)在Class02中,继续添加新的函数 UpdateXMLDate(string path , string key , string value){}
(3)“path”代表文档路径,“key”代表节点名称,“value”代表修改后的值;
(4)通过key找到对应节点的值,并用value进行替换。
(5)具体代码如下:
/// <summary>/// 修改XML文档中的数据/// </summary>/// <param name="path">文档路径</param>/// <param name="key1">节点1</param>/// <param name="key2">节点2</param>/// <param name="value">修改值</param>public void UpdateXMLDate(string path, string key1, string key2, string value){XmlDocument dor = new XmlDocument();//实例化一个XML对象 dor.LoadXml(path);//加载文档//dor.Load(path);XmlNode root = dor.SelectSingleNode("Arms");//获取根节点XmlNodeList nodeList = root.ChildNodes;//获取子节点//示例XML文档有两层子节点,所以使用两个foreach查找//如果层数较多,同理,虽然比较笨不过有用foreach (XmlNode node in nodeList){//在根节点的子节点数组中查找if (node.Name == key1){//在上述节点数组中查找foreach (XmlNode nodeChild in node.ChildNodes){if (nodeChild.Name == key2){nodeChild.InnerText = value;//修改对应节点的数据dor.Save(path);//原路径保存文档}}}}}
需要使用的时候通过实例化Class02来调用这个函数,达到修改的目的。
Unity 读取和修改XML文档相关推荐
- C#读取与修改XML文档
在项目开发中,对XML文档的操作是很常用的,这里,简单的说明读取与修改XML文档 XML文档的格式 <?xml version="1.0" encoding="ut ...
- C#中XmlDocument读取和创建 XML 文档
系列文章目录 C#处理XML 数据的技术方法总结 XmlDocument读取和创建 XML 文档 XmlWriter类提供一种快速非缓存的只进 XML 数据生成方式 XmlReader类提供一种快速非 ...
- xml批量修改php,通过php修改xml文档内容的方法
本文实例讲述了通过php修改xml文档内容的方法,.具体实现方法如下: 代码如下:<?php //1.创建一个DOMDocument对象.该对象就表示 xml文件 $xmldoc = new D ...
- java jdom 更新xml_Java中使用JDOM来修改XML文档(续前)
22.3.2 使用JDOM来处理XML文档 本节介绍使用JDOM来处理之前建立的XML文档"customer.xml",包括添加.删除以及修改XML文档中的元素.步骤如下. (1) ...
- 用Java语言遍历读取和操纵XML文档
实验环境:jdk1.9 实验工具:eclipse 问题: Students.xml <?xml version="1.0" encoding="GB2312&quo ...
- 安卓使用POI读取及修改Word文档(.doc格式)
前言:如果你可爱的项目经理要求安卓端的你来操作word实现各种功能,不要犹豫,直接动之以情晓之以理,因为这本来就是java的poi,安卓虽然源自java,但对于java的很多东西是不支持的,已有的各种 ...
- libxml2如何配合php使用,libxml2实现xml文档的节点的修改
其实在网上很容易能找到使用libxml2来对xml文档进行创建.解析.修改等.我着这里主要是就自己学习的libxml2修改xml文档的节点进行一个简单的总结,方便自己以后回顾. 下面给出我写的一个例子 ...
- libxml -- 解析 XML 文档
参考 http://xmlsoft.org/ http://www.miidoo.cn/info_detail-204.html http://www.blogjava.net/wxb_nudt/ar ...
- XML文档的基本操作
已知有一个XML文档(bookstore.xml)如下: <?xml version="1.0" encoding="gb2312"?> <b ...
最新文章
- 微软亚洲研究院周明:从语言智能到代码智能
- workflow4.0学习资料
- Android-正方形的容器
- SQL 基础之用户角色日常操作(十六)
- 北邮OJ 102. 最远距离 北邮2012网研院复试上机题
- python3解释器执行not 1 and 1_编程语言的分类,python解释器多版本共存.执行python的两种方式,变量,用户与程序交互...
- 《软件项目管理(第二版)》第 2 章——项目准备和启动 重点部分总结
- 10以内逆向运算题_加减法启蒙系列 | 实战篇二(10以内减法)
- python抓取word里的拼音_[DIY]给word中的汉字批量加、修改拼音(word全篇加拼音)(旧版VBA程序,缺点比较多)...
- ceph deep scrub扫描的脚本
- win10 appdata文件夹在哪 隐藏文件夹appdata的打开方法
- Ubuntu安装Caffe过程和BUG以及解决方案(全网最全)
- python实现工作流审批_工作流和审批流
- 将标准的EclipseWTP项目转化成具有Gradle功能的EclipseWTP项目
- 如何将一个陈旧的游戏翻新?以中国象棋为例展开的头脑风暴
- 【生物信息学】:基于Linux下的pgap安装及通用教程(持续更新中)
- vpython 贞测碰撞_VPython - example - 模拟球在两板之间的碰撞
- [附源码]计算机毕业设计springboot疫情物资管理系统
- 关于origin安装进度条不动,亲测有效
- python技术分享