C#遍历XML文件

以下面的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();
        }

运行结果如下:
这里写图片描述

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Maybe_ch

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值