6_XML读写

using Microsoft.VisualBasic;
using System;
using System.Collections.Generic;
using System.Text;
using System.Xml;


namespace xml
{
    public class RWXml
    {
        /// <summary>
        /// 生成一个XML文档
        /// </summary>
        public void WriteXml()
        {
            //随机数
            Random rd = new Random();
            //创建XML
            /* 1,实例化xml Doucument*?*/
            XmlDocument xDoc = new XmlDocument();
            //创建一个生命XML的声明
            XmlDeclaration declaration = xDoc.CreateXmlDeclaration("1.0", "UTF-8", "yes");
            xDoc.AppendChild(declaration);
            //一个XML必须要有一个跟元素
            //创建跟节点
            XmlElement elem = xDoc.CreateElement("students");
            //把根节点添加到文档中去
            xDoc.AppendChild(elem);
             for (int i = 1; i <= 10; i++)
            {
                //创建子节点
                 XmlElement elem1 = xDoc.CreateElement("student");
                 //将第一级的子节点放置到跟节点下面
                 elem.AppendChild(elem1);

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


                //创建子节点的子节点
                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");

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

            foreach(XmlNode xn in nodelist)
            {
                //                string name = xn.Name;
                //做类型转换
                XmlElement xmle = (XmlElement)xn;

                string name = xmle.GetAttribute("姓名");
                string no = xmle.GetAttribute("学号");
                 Console.WriteLine(name+":"+no);

               XmlNodeList childlist = xn.ChildNodes;
                //读取子节点中的成绩值
                foreach (XmlNode n in childlist)
                {
                    //类型转换
                    XmlElement xe = (XmlElement)n;

                    string ClassName = xe.Name;
                    string Score = xe.InnerText;
                    Console.WriteLine(ClassName + ":" + Score);
                    //修改特定的人的成绩
                    if ((no == "7290") && (ClassName == "语文"))
                    {
                        xe.InnerText = "100";
                    }
                }

               
            }
            xDoc.Save("students.xml");
            Console.ReadKey();
        }


    }
}

 

posted @ 2020-11-11 11:03  siha123  阅读(91)  评论(0)    收藏  举报