namespace AnalyzeXmlText
{
public class Skill
{
public int skill_Id;
public string skill_Name;
public string skill_EngName;
public int Trigger_Type;
public string Image_File;
public int AvailableRace;
public override string ToString()
{
return $"{nameof(skill_Id)}: {skill_Id}, {nameof(skill_Name)}: {skill_Name}, {nameof(skill_EngName)}: {skill_EngName}, {nameof(Trigger_Type)}: {Trigger_Type}, {nameof(Image_File)}: {Image_File}, {nameof(AvailableRace)}: {AvailableRace}";
}
}
}
3. 解析XML文本数据
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Text;
using System.Threading.Tasks;
using System.Xml;
namespace AnalyzeXmlText
{
class Program
{
static void Main(string[] args)
{
List<Skill> skillList= new List<Skill>();
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("Skill.txt");
XmlNode skillInfoNode = xmlDoc.FirstChild;//获取根节点SkillInfo
XmlNode skillListNode = skillInfoNode.FirstChild;//获取SkillInfo的根节点SkillList
XmlNodeList skillNodes = skillListNode.ChildNodes;//获取SkillList根的所有节点Skill
foreach (XmlNode skillNode in skillNodes)//遍历所有的skill标签
{
//将Name标签的value保存在skill对象里面
Skill skill = new Skill();
XmlElement element = skillNode["Name"];
skill.skill_Name = element.InnerText;
//获得skill标签的所有属性 返回值为一个XmlAttributeCollection集合
XmlAttributeCollection skillAttributes = skillNode.Attributes;
//将skill标签的属性SkillID保存在skill对象里面
int id = Int32.Parse(skillAttributes["SkillID"].Value);
skill.skill_Id = id;
//将skill标签的属性SkillEngName属性保存在skill对象里面
string skillEngName = skillAttributes["SkillEngName"].Value;
skill.skill_EngName = skillEngName;
Console.WriteLine(element.InnerText);
//将skill标签的属性Trigger_Type保存在skill对象里面
int triggerType = Int32.Parse(skillAttributes["TriggerType"].Value);
skill.Trigger_Type = triggerType;
//将skill标签的属性Image_File保存在skill对象里面
string imageFile = skillAttributes["ImageFile"].Value;
skill.Image_File = imageFile;
//将skill标签的AvailableRace保存在skill对象里面
int availableRace = Int32.Parse(skillAttributes["AvailableRace"].Value);
skill.AvailableRace = availableRace;
skillList.Add(skill);
}
foreach (Skill skill in skillList)
{
Console.WriteLine(skill.ToString());
}
Console.ReadKey();
}
}
}