C#对xml的读写

C#对xml的读写


【学习记录】
b站超越菜鸟系列视频学习整理

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
//引用命名空间
using System.Xml;

namespace ConsoleApp1
{
    public class wr
    {
        ///<summary>
        ///生成一个xml文档
        ///</summary>
        public void WriteXml()
        {
            //随机数
            Random rd = new Random();

            //首先,创建xml文档
            /*1、实例化一个xmlDocument类*/

            XmlDocument xDoc = new XmlDocument();
            //创建一个声明XML文档所需要的语法的变量
            XmlDeclaration declaration= xDoc.CreateXmlDeclaration("1.0", "UTF-8", "yes");
            xDoc.AppendChild(declaration);
            //一个xml文档,必须要有一个根元素
            //创建根节点students
            XmlElement elem = xDoc.CreateElement("students");
            //把根节点添加到xml文档中去
            xDoc.AppendChild(elem);

            for (int i = 1; i <= 10; i++)
            {
                //添加子节点
                XmlElement elem1 = xDoc.CreateElement("student");
                //将第一级的子节点放置到根节点的下面
                elem.AppendChild(elem1);

                添加子节点的子节点
                //XmlElement elem1_1 = xDoc.CreateElement("name");
                将第一级的子节点放置到根节点的下面
                //elem.AppendChild(elem1_1);

                //给节点添加属性
                elem1.SetAttribute("姓名", "张三");
                elem1.SetAttribute("学号", rd.Next(10000,99999).ToString());

                //添加第三级节点
                XmlElement elem1_1 = xDoc.CreateElement("语文成绩");
                //将第三级的子节点放置到第二级节点的下面
                elem1.AppendChild(elem1_1);
                //增加节点中的数据
                elem1_1.InnerText = rd.Next(60,100).ToString();

                XmlElement elem1_2 = xDoc.CreateElement("数学成绩");
                //将第三级的子节点放置到第二级节点的下面
                elem1.AppendChild(elem1_2);
                elem1_2.InnerText = rd.Next(60,100).ToString();

                XmlElement elem1_3 = xDoc.CreateElement("英语成绩");
                //将第三级的子节点放置到第二级节点的下面
                elem1.AppendChild(elem1_3);
                elem1_3.InnerText = rd.Next(60,100).ToString();
            }
            xDoc.Save("students.xml");
        }

        /// <summary>
        /// 读取xml文档
        /// </summary>
        public void ReadXml()
        {
            //实例化一个xml操作对象
            XmlDocument xDoc = new XmlDocument();
            xDoc.Load("students.xml");

            //获取根节点students
            XmlNode node = xDoc.SelectSingleNode("students");
            XmlNodeList nodeList = node.ChildNodes;

            foreach(XmlNode xn in nodeList)
            {
                //类型显示转换
                XmlElement xmle = (XmlElement)xn;

                string name = xmle.GetAttribute("姓名");
                string no = xmle.GetAttribute("学号");

                XmlNodeList childList = xn.ChildNodes;
                //先输出姓名和学号信息
                Console.WriteLine(name + ":" + no);
                foreach (XmlNode n in childList)
                {
                    //类型转换
                    XmlElement xe = (XmlElement)n;
                    string className = xe.Name;
                    string score = xe.InnerText;
                    //再输出成绩信息
                    Console.WriteLine(className + ":"+ score);
                }
            }
            //生成或者修改XML文档的时候,末尾一定要写save方法
            xDoc.Save("students.xml");

            Console.ReadKey();
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值