csharp读取Xml文档

主程序

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

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

            //得到根结点 
            XmlNode rootNode = xmlDoc.FirstChild;//获取第一个结点 

            //得到根结点下面的子节点的集合 
            XmlNodeList skillNodeList=  rootNode.ChildNodes;

            foreach (XmlNode skillNode in skillNodeList)
            {
                Skill skill = new Skill();
                XmlNodeList fieldNodeList = skillNode.ChildNodes;//获取skill结点下面所有的结点 id,name,damage
                foreach (XmlNode fieldNode in fieldNodeList)
                {
                    if (fieldNode.Name == "id")//通过Name属性 可以获取一个结点的名字
                    {
                        int id = Int32.Parse(fieldNode.InnerText);//获取结点内部的文本
                        skill.Id = id;
                    }
                    else if (fieldNode.Name == "name")
                    {
                        skill.Name = fieldNode.InnerText;
                        skill.Lang = fieldNode.Attributes[0].Value;//第一个属性的值    Attributes[1].Name第二个属性的名字
                    }
                    else
                    {
                        skill.Damage = Int32.Parse(fieldNode.InnerText);
                    }
                }
                skillList.Add(skill);
            }
            foreach (Skill skill in skillList)
            {
                Console.WriteLine(skill);
            }
        }
    }



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()//resharper:alt+ins+选择formatting members  自动生成Tostring方法
        {
            return string.Format("Id: {0}, Name: {1}, Lang: {2}, Damage: {3}", Id, Name, Lang, Damage);
        }
    }


Xml文档


  
    2
    天下无双
    123
   
  
    3
    永恒零度
    90
  
  
    4
    Xxx
    400
  


你可能感兴趣的:(Xml)