unity常见的解析数据方式XML,JSON,ProtocolBuf篇(二)XML
来源:互联网 发布:java中调用void方法 编辑:程序博客网 时间:2024/06/06 19:48
unity常见的解析数据方式XML,JSON,ProtocolBuf篇(二)XML
概述:
不管我们使用XML,还是JSON,还是ProtocolBuf,都是用来做数据存储和传输的,一般用作技能信息的存储,多会使用xml文档格式,我们来手写一个xml文档。
<GBSkills> <skill> <id>1</id> <name Game="JXQY">蜀犬吠日</name> <damage>6533</damage> </skill> <skill> <id>2</id> <name Game="JXQY">亢龙有悔</name> <damage>7869</damage> </skill> <skill> <id>3</id> <name Game="JXQY">棒打狗头</name> <damage>4452</damage> </skill> </GBSkills>
从上面的xml文档的格式中我们可以很清楚的看到最重要的几条xml手写格式:
①.标签对应,同时记住又开始标签就要有结束标签<p></p>
②.标签的可以嵌套,形如<p><l></l></p>
③.看看标签书写格式,大写对大写,小写对小写(就是xml文档对标签的大小写敏感)
④.标签可以添加属性,但是记住属性的值一定要用“”绑定,形如<name><pc="pengchao"></name>
⑤.必须有根节点,如<GBSkills></GBSkills>
从上面例子也能够看得出来,xml文档该怎么写,写的时候需要注意什么,这些多写几遍就记住了,我们会写不会用也没什么用,所以会写xml文档之后,还要学会用来做什么,如何将xml文档里面的信息解析出来,为我们所用。
解析XML文本中的内容:
首先为编写好的XML文档创建对应的脚本对象:
class SkillMap { public int ID { get; set; } public string Name { get; set; } public int Damage { get; set; } public string Game { get; set; } }
然后开始解析XML文档:解析XML文档的重点要素就是按照节点解析,层层剥离节点!
解析过程:
①.首先是不是需要加载到XML文本所在的路径,将文本加载进来
②.然后按照节点获取的方式根据需求层层剥离节点
class Program { static void Main(string[] args) { List<SkillMap>skillList=new List<SkillMap>(); //第一步 加载xml文档 XmlDocument xmlSkill = new XmlDocument(); //xmlSkill.Load("Skill.xml"); 加载方式一 xmlSkill.LoadXml(File.ReadAllText("Skill.xml"));//加载方式二 //第二步 拆分根节点 XmlNode rootNode = xmlSkill.FirstChild; //rootNode.ChildNodes//获取节点下面所有子节点函数 XmlNodeList nodeList = rootNode.ChildNodes; //第三步 节点的层层剥离 for (int i = 0; i < nodeList.Count; i++) { SkillMap skill = new SkillMap(); XmlNodeList childNodeList = nodeList[i].ChildNodes; for (int j = 0; j < childNodeList.Count; j++) { if (childNodeList[j].Name == "id") { skill.ID = Int32.Parse(childNodeList[j].InnerText); // Console.WriteLine(skill.ID); } else if (childNodeList[j].Name == "name") { skill.Name = childNodeList[j].InnerText; skill.Game=childNodeList[j].Attributes[0].Value; //Console.WriteLine(skill.Game); //Console.WriteLine(skill.Name); } else if (childNodeList[j].Name == "damage") { skill.Damage =Int32.Parse(childNodeList[j].InnerText); //Console.WriteLine(skill.Damage); } } skillList.Add(skill); } for (int i = 0; i < skillList.Count; i++) { Console.WriteLine(skillList[i].Name+'\n'+skillList[i].Damage); } Console.ReadKey(); //Console.WriteLine(rootNode.Name);//GBSkills //Console.ReadKey(); } }
解析的过程大致如上,没有什么难度。
2 0
- unity常见的解析数据方式XML,JSON,ProtocolBuf篇(二)XML
- Unity常见的解析数据方式XML,JSON,ProtocolBuf篇(三)Json
- Unity常见的解析数据方式XML,JSON,ProtocolBuf篇(一)Protobuf
- XML解析的常见方式
- XML之XML解析的常见方式
- 数据解析(XML、JSON)
- 解析HTTP POST方式请求的xml数据、本地XML文件数据, 并返回JSON字符串
- Unity Json与Xml解析
- XML、JSON数据解析
- 数据解析XML,JSON
- 数据解析-----Json-----XML
- JSON、XML数据解析
- 数据解析JSON/XML
- Android中常见的XML解析方式
- 四种常见的XML解析方式
- XML/JSON的几种解析方式
- XML数据的三种解析(JSON方式 , DOM方式 , Sax方式)
- XML 数据解析方式
- keepalived persistence_timeout参数意义 LVS Persistence 参数的作用
- Ubuntu 16.04 安装
- 创建image时服务端产生的对象
- Android JCVideoPlayer视频播放器使用相关(新版JCVideo已经添加相关功能)
- SVN搭建教程网址
- unity常见的解析数据方式XML,JSON,ProtocolBuf篇(二)XML
- 分布式文件系统 - FastDFS 安装部署
- 20. Spring Boot Servlet【从零开始学Spring Boot】
- Laravel 5.3 不同用户表登录认证
- SQL Server 存储(3/8):理解GAM和SGAM页
- java算法篇---银行家算法
- View---VelocityTracker 速度追踪
- AD15 根据原理图 对 PCB进行 分功能 布局
- uva1073 Glenbow Museum【解法二】