• 二、自定义XML结构数据-返回List集合-操作Node中的Attribute


    1.创建SkillInfoXML.txt 右击文件以xml文本编辑器打开 右键点击这个txt文件 选择较新则复制

    2.简单的xml结构文档

     1 <SkillInfo>
     2     <SkillList>
     3         <Skill
     4             SkillID="20002"  
     5             SkillEngName="Smash" 
     6             TriggerType="1" 
     7             ImageFile="data/gfx/image/gui_icon_skill_000.dds" 
     8             AvailableRace="7"
     9         >
    10             <Name>重击</Name>
    11         </Skill>
    12         <Skill
    13             SkillID="20003" 
    14             SkillEngName="Hide"
    15             TriggerType="2" 
    16             ImageFile="data/gfx/image/gui_icon_skill_001.dds"
    17             AvailableRace="1" 
    18         >
    19             <Name>隐身</Name>
    20         </Skill>
    21         <Skill
    22             SkillID="20004" 
    23             SkillEngName="Ikari" 
    24             TriggerType="3" 
    25             ImageFile="data/gfx/image/gui_icon_skill_002.dds" 
    26             AvailableRace="1" 
    27         >
    28             <Name>怒之翼</Name>
    29         </Skill>
    30         <Skill
    31             SkillID="20005" 
    32             SkillEngName="Revenge" 
    33             TriggerType="5" 
    34             ImageFile="data/gfx/image/gui_icon_skill_003.dds" 
    35             AvailableRace="2" 
    36         >
    37             <Name>光之复仇</Name>
    38         </Skill>
    39     </SkillList>
    40 </SkillInfo>
    View Code

    3.创建SkillInfo类对应XML数据

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Text;
     4 
     5 namespace XMLConsoleApp
     6 {
     7     public class SkillInfo
     8     {
     9         public int Id { get; set; }
    10         public string SkillEngName { get; set; }
    11 
    12         public string Name { get; set; }
    13         public int TriggerType { get; set; }
    14         public string ImageFile { get; set; }
    15         public int AvailableRace { get; set; }
    16         
    17         //重写ToString方法 方便打印输出
    18         public override string ToString()
    19         {
    20             return string.Format("Id:{0},Name:{5},EngName:{1},TriggerType:{2},", "ImageFile:{3},AvailableRace:{4}", Id, SkillEngName, TriggerType, ImageFile, AvailableRace,Name);
    21         }
    22 
    23     }
    24 }
    View Code

    4.封装方法将XML结构数据转换为集合并返回

     1         /// <summary>
     2         /// 将XML文档信息转换为List<>集合
     3         /// </summary>
     4         /// <returns>技能信息集合</returns>
     5         public static List<SkillInfo> FromXMLToSkillInfoList()
     6         {
     7             //实例化技能信息集合
     8             List<SkillInfo> skillInfoList = new List<SkillInfo>();
     9 
    10             //创建XML文档的实例
    11             XmlDocument xmlDocument = new XmlDocument();
    12 
    13             //加载具有XML数据结构的文件
    14             xmlDocument.Load("SkillInfoXML.txt");
    15 
    16             //获取根节点<SkillInfo>下的<SkillList>节点
    17             XmlNode skillListNode = xmlDocument.FirstChild.FirstChild;
    18 
    19             //<SkillList>节点下的所有 <Skill> 
    20             XmlNodeList skillNodeList = skillListNode.ChildNodes;
    21 
    22             //遍历技能信息 
    23             foreach (XmlNode skillNode in skillNodeList)
    24             {
    25                 //实例化技能信息对象
    26                 SkillInfo skillInfo = new SkillInfo();
    27 
    28                 //通过所引起获取<Name>节点的文本信息
    29                 XmlElement eleName = skillNode["Name"];
    30                 skillInfo.Name = eleName.InnerText;
    31 
    32                 //获取Xml属性集合
    33                 XmlAttributeCollection xmlAttributeCollection = skillNode.Attributes;
    34 
    35                 //通过所引起将属性集合中的值赋给SkillInfo对象中的属性
    36                 skillInfo.Id = Int32.Parse(xmlAttributeCollection["SkillID"].Value);
    37                 skillInfo.SkillEngName = xmlAttributeCollection["SkillEngName"].Value;
    38                 skillInfo.TriggerType = Int32.Parse(xmlAttributeCollection["TriggerType"].Value);
    39                 skillInfo.ImageFile = xmlAttributeCollection["ImageFile"].Value;
    40                 skillInfo.AvailableRace = Int32.Parse(xmlAttributeCollection["AvailableRace"].Value);
    41 
    42                 //将获取到的每一个对象添加到技能信息集合中
    43                 skillInfoList.Add(skillInfo);
    44             }
    45 
    46             //返回技能信息集合
    47             return skillInfoList;
    48         }
    View Code

    5.控制台打印输出.

    1             List<SkillInfo> skillInfoList = ReadXMLDocumentHelper.FromXMLToSkillInfoList();
    2             foreach (SkillInfo sk in skillInfoList)
    3             {
    4                 Console.WriteLine(sk);
    5             }
    View Code
  • 相关阅读:
    详述JavaScript实现继承的几种方式
    理解javascript函数调用和“this”
    React-Native 组件开发方法
    React Native 中 component 生命周期
    React-Native 样式指南
    React Native 之flex布局
    转每天一个linux命令(5):rm 命令
    [Python爬虫] 在Windows下安装PhantomJS和CasperJS及入门介绍(上)
    转每天一个linux命令(4):mkdir命令
    转每天一个linux命令(3):pwd命令
  • 原文地址:https://www.cnblogs.com/ABC-wangyuhan/p/14226082.html
Copyright © 2020-2023  润新知