原始XML文件
<?xml version="1.0" encoding="utf-8" ?>
<School headmaster="王校长"><Grade grade="12" teacher="张老师"><Student name="小米" age="18"/><Student name="小明" age="19"/><Student name="小蜜" age="17"/><Student name="小敏" age="16"/><Student name="小马" age="18"/></Grade><Grade grade="1" teacher="李老师"><Student name="小红" age="8"/><Student name="小洪" age="9"/><Student name="小猴" age="7"/><Student name="肖红" age="6"/><Student name="小虹" age="8"/></Grade>
</School>
代码
Program.cs
namespace ConsoleApp6SerializeXml
{internal class Program{static void Main(string[] args){DirectoryInfo path = new DirectoryInfo(AppDomain.CurrentDomain.BaseDirectory);StreamReader text = new StreamReader(path.Parent.Parent.FullName + "\\testxml.xml");XmlSerializer serializer = new XmlSerializer(typeof(School));School school = serializer.Deserialize(text) as School;Console.WriteLine(school.headmaster);foreach (Grade grade in school.grades){Console.WriteLine(grade.grade);Console.WriteLine(grade.teacher);foreach (Student student in grade.students){Console.WriteLine(student.name);Console.WriteLine(student.age);}}Console.ReadKey();}}
}
School.cs
namespace ConsoleApp6SerializeXml
{[XmlRoot("School")]public class School{[XmlAttribute("headmaster")]public string headmaster { get; set; }[XmlElement("Grade")]public List<Grade> grades { get; set; }}
}
Grade.cs
namespace ConsoleApp6SerializeXml
{public class Grade{[XmlAttribute("grade")]public int grade { get; set; }[XmlAttribute("teacher")]public string teacher { get; set; }[XmlElement("Student")]public List<Student> students { get; set; }}
}
Student.cs
namespace ConsoleApp6SerializeXml
{public class Student{[XmlAttribute("name")]public string name { get; set; }[XmlAttribute("age")]public int age { get; set; }}
}