zoukankan      html  css  js  c++  java
  • 二、自定义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
  • 相关阅读:
    Uva 10779 collector's problem
    poj 2728 最优比率树(最小生成树问题)
    LA 3126 二分图匹配 最小路径覆盖
    poj 1149 最大流构图
    Step By Step(Java XML篇)
    Step By Step(Java 输入输出篇)
    Step By Step(Java 集合篇)
    Step By Step(Java 线程篇)
    Step By Step(Java 反射篇)
    Step By Step(Java 国际化篇)
  • 原文地址:https://www.cnblogs.com/ABC-wangyuhan/p/14226082.html
Copyright © 2011-2022 走看看