C#Xml文档的解析

发布时间 2023-05-20 13:41:53作者: ZERO_BEYOND
 1 <?xml version="1.0" encoding="utf-8" ?> 
 2 <skills>  
 3   <skill>
 4     <id>1</id>
 5     <name lang ="cn">a</name>
 6     <damage>100</damage>
 7   </skill>
 8   <skill>
 9     <id>2</id>
10     <name lang ="cn">b</name>
11     <damage>100</damage>
12   </skill>
13   <skill>
14     <id>3</id>
15     <name lang ="cn">c</name>
16     <damage>100</damage>
17   </skill>
18   <skill>
19     <id>4</id>
20     <name lang ="cn">d</name>
21     <damage>100</damage>
22   </skill>
23   <skill>
24     <id>5</id>
25     <name lang ="cn">e</name>
26     <damage>100</damage>
27   </skill>
28 </skills> 
1     class Skill
2     {
3         public int id { get; set; }
4         public string name { get; set; }
5         public string lang { get; set; }
6         public int damage { get; set; }
7     }
 1 List<Skill> skills = new List<Skill>();
 2             XmlDocument xml = new XmlDocument();
 3             //路径加载
 4             xml.Load("Skills.xml");
 5             //字符串加载
 6             //xml.LoadXml(File.ReadAllText("Skills.xml"));
 7             XmlNode root = xml.ChildNodes[1];
 8             XmlNodeList skillList = root.ChildNodes;
 9             foreach (XmlNode skill in skillList)
10             {
11                 Skill _skill = new Skill();
12                 foreach (XmlNode node in skill.ChildNodes)
13                 {
14                     if(node.Name == "id")
15                     {
16                         _skill.id = int.Parse(node.InnerXml);
17                     }
18                     if (node.Name == "name")
19                     {
20                         _skill.name = node.InnerXml;
21                         _skill.lang = node.Attributes[0].Value;
22                     }
23                     if (node.Name == "damage")
24                     {
25                         _skill.damage = int.Parse(node.InnerXml);
26                     }
27                 }
28                 skills.Add(_skill);
29             }
30             foreach (var item in skills)
31             {
32                 Console.WriteLine(item.id + "/" + item.name + "/" + item.damage);
33             }