以下面的XML文件为例(studentList.xml)
<?xml version="1.0" encoding="utf-8" ?>
<Students>
<Student>
<Name>张三</Name>
<Age>18</Age>
<Sex>男</Sex>
<Birthday>1996-06-13</Birthday>
</Student>
<Student>
<Name>呵呵</Name>
<Age>18</Age>
<Sex>男</Sex>
<Birthday>1996-06-13</Birthday>
</Student>
<Type>
1.0
</Type>
</Students>
static void Main(string[] args)
{
XmlDocument objDoc = new XmlDocument();//1.创建XML文档操作对象
objDoc.Load("..\\..\\StudentList.xml");//2.加载XML文件到文档对象中
XmlNode rootNode = objDoc.DocumentElement;//3.获取XML文档根目录
List<Student> list = new List<Student>();//创建对象集合
foreach(XmlNode node in rootNode.ChildNodes)//4.遍历根节点(根节点包含所有节点)
{
if (node.Name == "Student") {
//遍历节点存储为对象
Student student = new Student();
foreach (XmlNode subNode in node)//5.遍历子节点
{
switch (subNode.Name)//根据子节点的名称封装到对象的属性
{
case "Name":
student.Name = subNode.InnerText;//获取节点名称对应的节点值
break;
case "Age":
student.Age = Convert.ToInt32(subNode.InnerText);
break;
case "Sex":
student.Sex = subNode.InnerText;
break;
case "Birthday":
student.Birthday = Convert.ToDateTime(subNode.InnerText);
break;
}
}
list.Add(student);
}
}
foreach(Student stu in list)
{
Console.WriteLine($"Name ={stu.Name},Age = {stu.Age}, Sex = {stu.Sex}, Birthday = {stu.Birthday}");
}
Console.ReadKey();
}
运行结果如下: