mxl 数据

来源:互联网 发布:95后嫩模网络直播 编辑:程序博客网 时间:2024/06/01 12:32

     用来存储数据。  格式是txt的格式

   第一行是 xml 的版本号 和编码。是树形的结构,由元素标签构成。

   元素不能使用 xml关键字 ,区分大小写

   用c#解析 xml 文

    在vs 中创建一个常规---txt文档 --打开方式该为xml编辑器就

   <SkillInfo>
    <SkillList>
        <Skill
            SkillID="20002" 
            SkillEngName="Smash"
            TriggerType="1"
            ImageFile="data/gfx/image/gui_icon_skill_000.dds"
            AvailableRace="7"
        >
   <Name>重击</Name>
  </Skill>
        <Skill
            SkillID="20003"
            SkillEngName="Hide"
            TriggerType="2"
            ImageFile="data/gfx/image/gui_icon_skill_001.dds"
            AvailableRace="1"
        >
   <Name>隐身</Name>
  </Skill>
        <Skill
            SkillID="20004"
            SkillEngName="Ikari"
            TriggerType="3"
            ImageFile="data/gfx/image/gui_icon_skill_002.dds"
            AvailableRace="1"
        >
   <Name>怒之翼</Name>
  </Skill>
        <Skill
            SkillID="20005"
            SkillEngName="Revenge"
            TriggerType="5"
            ImageFile="data/gfx/image/gui_icon_skill_003.dds"
            AvailableRace="2"
        >
   <Name>光之复仇</Name>
  </Skill>
    </SkillList>
</SkillInfo>

_________________________________________________________________

类模型用于在c#中存储

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _030_项目了 {
    /// <summary>
    /// 技能类
    /// </summary>
    class Skill {
        public int Id { get; set; }
        public string Name { get; set; }
        public string Lang { get; set; }
        public int Damage { get; set; }

        public override string ToString()
        {
            return string.Format("Id: {0}, Name: {1}, Lang: {2}, Damage: {3}", Id, Name, Lang, Damage);
        }
    }
}

_______________________________________________________________

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
using System.Xml;

namespace _030_项目了 {
    class Program {
        static void Main(string[] args) {
            //创建技能信息集合,用来存储所有的技能信息
            List<Skill> skillList = new List<Skill>();

            // XmlDocment专门用来解析xml文档的
            XmlDocument xmlDoc = new XmlDocument();
            //选择要加载解析的xml文档的名字
            //xmlDoc.Load("skillinfo.txt");    //两种读取文件的方法
            xmlDoc.LoadXml(  File.ReadAllText("skillinfo.txt") );//传递一个字符串(xml格式的字符串)

            //得到根结点 (xmlnode用来代表一个结点)
            XmlNode rootNode = xmlDoc.FirstChild;//获取第一个结点
           
            //得到根结点下面的子节点的集合
            XmlNodeList skillNodeList=  rootNode.ChildNodes;//获取当前结点下面的所有子节点

            foreach (XmlNode skillNode in skillNodeList)
            {
                Skill skill = new Skill();
                XmlNodeList fieldNodeList = skillNode.ChildNodes;//获取skill结点下面所有的结点
                foreach (XmlNode fieldNode in fieldNodeList)
                {
                    if (fieldNode.Name == "id")//通过Name属性 可以获取一个结点的名字
                    {
                        int id = Int32.Parse(fieldNode.InnerText);//获取结点内部的文本转化成整数
                        skill.Id = id;
                    }else if (fieldNode.Name == "name")
                    {
                        string name = fieldNode.InnerText;
                        skill.Name = name;
                        skill.Lang = fieldNode.Attributes[0].Value;
                    }
                    else
                    {
                        skill.Damage = Int32.Parse(fieldNode.InnerText);
                    }
                }
                skillList.Add(skill);
            }
            foreach (Skill skill in skillList)//因为skill类使用了tostring方法 格式化成字符型所以显示的是类的信息
            {
                Console.WriteLine(skill);
            }
            Console.ReadKey();
        }
    }
}

   


0 0