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文档相关推荐

  1. C#读取与修改XML文档

    在项目开发中,对XML文档的操作是很常用的,这里,简单的说明读取与修改XML文档 XML文档的格式 <?xml version="1.0" encoding="ut ...

  2. C#中XmlDocument读取和创建 XML 文档

    系列文章目录 C#处理XML 数据的技术方法总结 XmlDocument读取和创建 XML 文档 XmlWriter类提供一种快速非缓存的只进 XML 数据生成方式 XmlReader类提供一种快速非 ...

  3. xml批量修改php,通过php修改xml文档内容的方法

    本文实例讲述了通过php修改xml文档内容的方法,.具体实现方法如下: 代码如下:<?php //1.创建一个DOMDocument对象.该对象就表示 xml文件 $xmldoc = new D ...

  4. java jdom 更新xml_Java中使用JDOM来修改XML文档(续前)

    22.3.2 使用JDOM来处理XML文档 本节介绍使用JDOM来处理之前建立的XML文档"customer.xml",包括添加.删除以及修改XML文档中的元素.步骤如下. (1) ...

  5. 用Java语言遍历读取和操纵XML文档

    实验环境:jdk1.9 实验工具:eclipse 问题: Students.xml <?xml version="1.0" encoding="GB2312&quo ...

  6. 安卓使用POI读取及修改Word文档(.doc格式)

    前言:如果你可爱的项目经理要求安卓端的你来操作word实现各种功能,不要犹豫,直接动之以情晓之以理,因为这本来就是java的poi,安卓虽然源自java,但对于java的很多东西是不支持的,已有的各种 ...

  7. libxml2如何配合php使用,libxml2实现xml文档的节点的修改

    其实在网上很容易能找到使用libxml2来对xml文档进行创建.解析.修改等.我着这里主要是就自己学习的libxml2修改xml文档的节点进行一个简单的总结,方便自己以后回顾. 下面给出我写的一个例子 ...

  8. libxml -- 解析 XML 文档

    参考 http://xmlsoft.org/ http://www.miidoo.cn/info_detail-204.html http://www.blogjava.net/wxb_nudt/ar ...

  9. XML文档的基本操作

    已知有一个XML文档(bookstore.xml)如下: <?xml version="1.0" encoding="gb2312"?> <b ...

最新文章

  1. 微软亚洲研究院周明:从语言智能到代码智能
  2. workflow4.0学习资料
  3. Android-正方形的容器
  4. SQL 基础之用户角色日常操作(十六)
  5. 北邮OJ 102. 最远距离 北邮2012网研院复试上机题
  6. python3解释器执行not 1 and 1_编程语言的分类,python解释器多版本共存.执行python的两种方式,变量,用户与程序交互...
  7. 《软件项目管理(第二版)》第 2 章——项目准备和启动 重点部分总结
  8. 10以内逆向运算题_加减法启蒙系列 | 实战篇二(10以内减法)
  9. python抓取word里的拼音_[DIY]给word中的汉字批量加、修改拼音(word全篇加拼音)(旧版VBA程序,缺点比较多)...
  10. ceph deep scrub扫描的脚本
  11. win10 appdata文件夹在哪 隐藏文件夹appdata的打开方法
  12. Ubuntu安装Caffe过程和BUG以及解决方案(全网最全)
  13. python实现工作流审批_工作流和审批流
  14. 将标准的EclipseWTP项目转化成具有Gradle功能的EclipseWTP项目
  15. 如何将一个陈旧的游戏翻新?以中国象棋为例展开的头脑风暴
  16. 【生物信息学】:基于Linux下的pgap安装及通用教程(持续更新中)
  17. vpython 贞测碰撞_VPython - example - 模拟球在两板之间的碰撞
  18. [附源码]计算机毕业设计springboot疫情物资管理系统
  19. 关于origin安装进度条不动,亲测有效
  20. python技术分享

热门文章

  1. Java——面向对象编程
  2. OFD文件如何免费转化成PDF
  3. 医疗器械系统测试用例编写实操(二)流程图分析法
  4. picasso加载图片
  5. C# (初入江湖)-几行代码也可以写个电脑屏保
  6. 设计模式(Java)----装饰模式Decorator
  7. 借用立创商城在AD中建立元器件原理图库及封装库
  8. 高数习题第八章总练习题(下)
  9. 想成为“牛人”的你,知道这些“壁垒”吗? ——论技术壁垒、时间壁垒和成果壁垒
  10. SSM+网上订餐系统 毕业设计-附源码221558