xml文档解析

xml技能信息.txt(1.可直接将TXT文件拖进项目里。2.也可新建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>

class.cs:

    class Skill
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string EngName { get; set; }
        public int TriggerType { get; set; }
        public string ImageFile { get; set; }
        public int AvailableRace { get; set; }

        public override string ToString()//这里可以用alt+insert,选择Formating members,再全选
        {
            return string.Format("Id: {0}, Name: {1}, EngName: {2}, TriggerType: {3}, ImageFile: {4}, AvailableRace: {5}", Id, Name, EngName, TriggerType, ImageFile, AvailableRace);
        }
    }

Program.cs:

    class Program
    {
        static void Main(string[] args)
        {
            List<Skill> skillList = new List<Skill>();

            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.Load("xml技能信息.txt");

            //XmlNode skillInfoNode = xmlDoc.FirstChild;
            //XmlNode skillListNode = skillInfoNode.FirstChild;
            XmlNode skillListNode = xmlDoc.FirstChild.FirstChild;

            XmlNodeList skillNodeList = skillListNode.ChildNodes;
            foreach (XmlNode skillNode in skillNodeList)
            {
                Skill skill = new Skill();
                XmlElement ele = skillNode["Name"];
                skill.Name = ele.InnerText;
                XmlAttributeCollection col = skillNode.Attributes;//获取该结点属性的集合
                //skill.Id = Int32.Parse(col["SkillID"].Value);
                XmlAttribute idAttribute = col["SkillID"];//通过字符串索引器 获取一个属性对象
                skill.Id = Int32.Parse(idAttribute.Value);
                skill.EngName = col["SkillEngName"].Value;
                skill.TriggerType = Int32.Parse(col["TriggerType"].Value);
                skill.ImageFile = col["ImageFile"].Value;
                skill.AvailableRace = Int32.Parse(col["AvailableRace"].Value);
                skillList.Add(skill);
            }
            foreach (Skill s in skillList)
            {
                Console.WriteLine(s);
            }
            Console.ReadKey();
        }
    }

猜你喜欢

转载自blog.csdn.net/qq_40323256/article/details/83218298