xml的基本操作

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Xml;

namespace XmlProject
{
    class Program
    {
        private static string url=@"c:/xml/student.xml";//xml路径
        static void Main(string[] args)
        {
           
            CreateXml();//创建xml文件并添加数据
            //AddElement();//打开xml并添加数据
            //GetElementById("06360402");//根据id获取单个数据
            //GetElementsBySex("male");//根据sex获取多个数据
            //EditElementById("06360403");// 根据id修改数据
            //EditElementBySex("male");// 根据sex更改数据
            //DelElementById("06360401");//根据id删除数据
            //DelElementBySex("male");//根据sex删除多个数据
        }
        /// <summary>
        /// 根据sex删除多个数据
        /// </summary>
        /// <param name="sex"></param>
        private static void DelElementBySex(string sex)
        {
            XmlDocument xmlDoc = new XmlDocument();
            XmlElement students = null;
            try
            {
                xmlDoc.Load(url);//加载xml文件
                students = xmlDoc.DocumentElement;//获取根节点
                XmlNodeList items = students.SelectNodes("/students/student[sex='" + sex + "']");//获取多个节点
                foreach (XmlNode item in items)//删除多个节点
                {
                    item.ParentNode.RemoveChild(item);
                }
                xmlDoc.Save(url);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
                Console.ReadLine();
            }
        }
        /// <summary>
        /// 根据id删除数据
        /// </summary>
        /// <param name="id"></param>
        private static void DelElementById(string id)
        {
            XmlDocument xmlDoc = new XmlDocument();
            XmlElement students = null;
            try
            {
                xmlDoc.Load(url);//加载xml文件
                students = xmlDoc.DocumentElement;//获取根节点
                XmlNode item = students.SelectSingleNode("/students/student[@id='" + id + "']");//获取单个节点
                item.ParentNode.RemoveChild(item);//删除节点
                xmlDoc.Save(url);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
                Console.ReadLine();
            }
        }
        /// <summary>
        /// 根据sex更改数据
        /// </summary>
        /// <param name="sex"></param>
        private static void EditElementBySex(string sex)
        {
            XmlDocument xmlDoc = new XmlDocument();
            XmlElement students = null;
            XmlNodeList items = null;
            try
            {
                xmlDoc.Load(url);//加载xml文件
                students = xmlDoc.DocumentElement;//获取根节点
                items = students.SelectNodes("/students/student[sex='" + sex + "']");//获取多个节点
                foreach (XmlNode item in items)//更改节点数据
                {
                    ((XmlElement)item).GetElementsByTagName("name").Item(0).InnerText = "wangwu";
                    ((XmlElement)item).SetAttribute("id", "001");
                }
                xmlDoc.Save(url);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
                Console.ReadLine();
            }
        }
        /// <summary>
        /// 根据id修改数据
        /// </summary>
        /// <param name="id"></param>
        private static void EditElementById(string id)
        {
            XmlDocument xmlDoc = new XmlDocument();
            XmlElement students = null;
            try
            {
                xmlDoc.Load(url);//加载xml文件
                students = xmlDoc.DocumentElement;//获取根节点
                XmlElement item = (XmlElement)students.SelectSingleNode("/students/student[@id='"+id+"']");//获取单个节点
                item.GetElementsByTagName("sex").Item(0).InnerText = "male";//更改数据
                xmlDoc.Save(url);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
                Console.ReadLine();
            }
        }
        /// <summary>
        /// 根据sex获取多个数据
        /// </summary>
        /// <returns></returns>
        private static XmlNodeList GetElementsBySex(string sex)
        {
            XmlDocument xmlDoc = new XmlDocument();
            XmlElement students = null;
            XmlNodeList items = null;
            try
            {
                xmlDoc.Load(url);//加载xml文件
                students = xmlDoc.DocumentElement;//获取根节点
                items = students.SelectNodes("/students/student[sex='"+sex+"']");//根据sex获取多个节点
                foreach (XmlNode item in items)//遍历节点
                {
                    Console.WriteLine(item.OuterXml);
                }
                Console.ReadLine();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
                Console.ReadLine();
            }
            return items;
        }
        /// <summary>
        /// 根据id获取单个数据
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        private static XmlNode GetElementById(string id)
        {
            XmlDocument xmlDoc = new XmlDocument();
            XmlElement students = null;
            XmlNode item=null;
            try
            {
                xmlDoc.Load(url);//加载xml文件
                students = xmlDoc.DocumentElement;//获取根节点
                item=students.SelectSingleNode("/students/student[@id='"+id+"']");//根据id获取单个节点
                Console.WriteLine(item.OuterXml);
                Console.ReadLine();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
                Console.ReadLine();
            }
            return item;
        }

        /// <summary>
        /// 打开xml并添加数据
        /// </summary>
        private static void AddElement()
        {
            XmlDocument xmlDoc = new XmlDocument();
            XmlElement students = null;
            try
            {
                xmlDoc.Load(url);//加载xml文件
                students = xmlDoc.DocumentElement;//获取根节点
                //创建一个节点
                XmlElement student = xmlDoc.CreateElement("student");
                student.SetAttribute("id", "06360403");
                XmlElement name = xmlDoc.CreateElement("name");
                name.InnerText = "wangwu";
                student.AppendChild(name);
                XmlElement sex = xmlDoc.CreateElement("sex");
                sex.InnerText = "female";
                student.AppendChild(sex);
                students.AppendChild(student);

                xmlDoc.Save(url);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
                Console.ReadLine();
            }
        }
        /// <summary>
        /// 创建xml文件并添加数据
        /// </summary>
        private static void CreateXml()
        {
            //创建文件
            FileStream fs = new FileStream(url, FileMode.Create);
            XmlTextWriter w = new XmlTextWriter(fs, Encoding.UTF8);
            //添加根节点
            w.WriteStartDocument();
            w.WriteStartElement("students");
            //添加第一个节点
            w.WriteStartElement("student");
            w.WriteAttributeString("id", "06360401");
            w.WriteElementString("name", "zhangsan");
            w.WriteElementString("sex", "male");
            w.WriteEndElement();
            //添加第二个节点
            w.WriteStartElement("student");
            w.WriteAttributeString("id", "06360402");
            w.WriteElementString("name", "lisi");
            w.WriteElementString("sex", "male");
            w.WriteEndElement();

            w.WriteEndElement();
            w.WriteEndDocument();

            w.Flush();
            fs.Close();
        }
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值