• QQ
  • nahooten@sina.com
  • 常州市九洲新世界花苑15-2

游戏开发

C#简单的xml操作

原创内容,转载请注明原文网址:http://homeqin.cn/a/wenzhangboke/jishutiandi/youxikaifa/2018/1121/202.html

 

简单的xml操作--解析技能xml

 

xml文件

 

<skills>

  

    <skill>

    <id>1</id>

    <name lang="cn">大荒囚天指</name>

    <demage>100</demage>     

  </skill>

  

  <skill>

    <id>2</id>

    <name lang="en">绝对零度</name>

    <demage>200</demage>

  </skill>

    

  <skill>

      <id>3</id>

      <name lang="ger">青龙魂</name>

      <demage>1000</demage>

  </skill>

 

</skills>

 

 

 

创建对应的skill类,重写了ToString方法 方便输出

 

class Skill

    {

        public int ID { get; set; }

        public string Name { get; set; }

        public string Lang { get; set; }

        public int Demage { get; set; }

 

        public override string ToString()

        {

            return string.Format("Id:{0},Name:{1},Lang:{2},Demage:{3}", ID, Name, Lang, Demage);

        }

    }

 

 

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Xml;

 

namespace xml操作

{

    class Program

    {

        static void Main(string[] args)

        {

            List<Skill> skillList = new List<Skill>();

 

            XmlDocument xmlDoc = new XmlDocument();

            xmlDoc.Load("skillInfo.txt");

 

            //根节点

            XmlNode root = xmlDoc.FirstChild;

 

            XmlNodeList skillsNodeList = root.ChildNodes;

            foreach (XmlNode skillNode in skillsNodeList)

            {

                Skill skill = new Skill();

                foreach (XmlNode filedNode in skillNode.ChildNodes)

                {

                    if (filedNode.Name == "id")

                    {

                        skill.ID = int.Parse( filedNode.InnerText);

                    }

                    else if (filedNode.Name == "name")

                    {

                        skill.Name = filedNode.InnerText;

                        skill.Lang = filedNode.Attributes[0].Value;

                    }

                    else if (filedNode.Name == "demage")

                    {

                        skill.Demage = int.Parse(filedNode.InnerText);

                    }

                }

                skillList.Add(skill);

            }

 

            foreach (var item in skillList)

            {

                Console.WriteLine(item);

            }

        }

    }



上篇:上一篇:Unity游戏的GC(garbagecollection)优化
下篇:下一篇:Unity3D(C#)事件分发机制的实现