csharp读取Xml文档

来源:互联网 发布:四川地道川货网络大赛 编辑:程序博客网 时间:2024/06/05 09:29

主程序

class Program     {        static void Main(string[] args)         {            //创建技能信息集合,用来存储所有的技能信息            List<Skill> skillList = new List<Skill>();            // XmlDocment专门用来解析xml文档的            XmlDocument xmlDoc = new XmlDocument();            //选择要加载解析的xml文档            //xmlDoc.Load("skillinfo.txt");            xmlDoc.LoadXml(File.ReadAllText("skillinfo.txt") );//传递一个字符串(xml格式的字符串)            //得到根结点 <skills>            XmlNode rootNode = xmlDoc.FirstChild;//获取第一个结点             //得到根结点下面的子节点的集合 <skill>            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文档

<skills>  <skill>    <id>2</id>    <name lang="cn">天下无双</name>    <damage>123</damage>   </skill>  <skill>    <id>3</id>    <name lang="cn">永恒零度</name>    <damage>90</damage>  </skill>  <skill>    <id>4</id>    <name lang="en">Xxx</name>    <damage>400</damage>  </skill></skills>


0 0
原创粉丝点击