.XML之四 增删改查

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


namespace _04xml文档增删改查
{
    class Program
    {
        static void Main(string[] args)
        {
            #region 对xml文档实现追加
            //XmlDocument doc = new XmlDocument();
            首先判断xml文档是否存在 如果存在 则追加  否则创建一个
            //if (File.Exists("Student.xml"))
            //{
            //    //加载进来
            //    doc.Load("Student.xml");
            //    //追加
            //    //获得根节点 给根节点添加子节点
            //    XmlElement person = doc.DocumentElement;


            //    XmlElement student = doc.CreateElement("Student");
            //    student.SetAttribute("studentID", "10");
            //    person.AppendChild(student);


            //    XmlElement name = doc.CreateElement("Name");
            //    name.InnerXml = "新宝宝";
            //    student.AppendChild(name);


            //    XmlElement age = doc.CreateElement("Age");
            //    age.InnerXml = "18";
            //    student.AppendChild(age);


            //    XmlElement gender = doc.CreateElement("Gender");
            //    gender.InnerXml = "女";
            //    student.AppendChild(gender);


            //}
            //else
            //{
            //    //不存在


            //    XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "utf-8", null);
            //    doc.AppendChild(dec);


            //    XmlElement person = doc.CreateElement("Person");
            //    doc.AppendChild(person);




            //    XmlElement student = doc.CreateElement("Student");
            //    student.SetAttribute("studentID", "20");
            //    person.AppendChild(student);


            //    XmlElement name = doc.CreateElement("Name");
            //    name.InnerXml = "嫩宝宝";
            //    student.AppendChild(name);


            //    XmlElement age = doc.CreateElement("Age");
            //    age.InnerXml = "28";
            //    student.AppendChild(age);


            //    XmlElement gender = doc.CreateElement("Gender");
            //    gender.InnerXml = "男";
            //    student.AppendChild(gender);
            //}
            //doc.Save("Student.xml");
            //Console.WriteLine("保存成功");
            //Console.ReadKey();
            #endregion


            #region 对xml文档实现查找读取
            //XmlDocument doc = new XmlDocument();


            //doc.Load("Order.xml");


            先获得根节点
            //XmlElement order = doc.DocumentElement;
            获得根节点下面的所有子节点
            //XmlNodeList xnl = order.ChildNodes;


            //foreach (XmlNode item in xnl)
            //{
            //    Console.WriteLine(item.InnerText);//打印出的是第一子节点的信息


            //}


            //XmlElement items = order["Items"];
            //XmlNodeList xnl2 = items.ChildNodes;
            //foreach (XmlNode item in xnl2)
            //{
            //    Console.WriteLine(item.Attributes["Name"].Value);
            //    Console.WriteLine(item.Attributes["Count"].Value);


            //    //修改Name=风衣的Count值
            //    if (item.Attributes["Name"].Value == "风衣")
            //    {
            //        item.Attributes["Count"].Value = "26005";
            //    }
            //}




            //doc.Save("OrDER.xml");
            //Console.ReadKey();
            #endregion






            #region 使用xPath的方式读取文件




            方法一
            //XmlDocument doc = new XmlDocument();
            //doc.Load("Order.xml");
            获得根节点
            //XmlElement order = doc.DocumentElement;
            获得单条子节点
            //XmlNode xn = order.SelectSingleNode("/Order/OrderNumber");
            //Console.WriteLine(xn.InnerText);
            //Console.ReadKey();




            方法二
            //XmlDocument doc = new XmlDocument();
            //doc.Load("Order.xml");
            获得根节点
            //XmlElement order = doc.DocumentElement;
            获得单条子节点
            //XmlNode xn = order.SelectSingleNode("/Order/Items/OrderItem[@Name='手链']");


            //Console.WriteLine(xn.Attributes["Name"].Value);//Attributes属性
            重新赋值
            //xn.Attributes["Count"].Value = "666";
            //doc.Save("Order.xml");




            //Console.ReadKey();








            #endregion




            #region 删


            删除 删除order根节点下的所有子节点
            //XmlDocument doc = new XmlDocument();
            //doc.Load("Order.xml");


            获得根节点
            //XmlElement order = doc.DocumentElement;
            //order.RemoveAll();//删除order根节点下的所有子节点














            删除 删除根节点下指定子节点
            //XmlDocument doc = new XmlDocument();
            //doc.Load("Order.xml");


            获得根节点
            //XmlElement order = doc.DocumentElement;
            //XmlNode xn = order.SelectSingleNode("/Order/Items/OrderItem[@Name='手链']");
            获得Items节点


            //XmlNode items = order["Items"];//order.SelectSingleNode("/Order/Items");


            //items.RemoveChild(xn);// 移除当前节点














            //移除节点下的属性
            //删除 删除根节点下指定子节点
            XmlDocument doc = new XmlDocument();
            doc.Load("Order.xml");


            //获得根节点
            XmlElement order = doc.DocumentElement;
            XmlNode xn = order.SelectSingleNode("/Order/Items/OrderItem[@Name='风衣']");
            //获得Items节点


            //让orderItem去删除Count属性
            XmlNode orderItem = order.SelectSingleNode("/Order/Items/OrderItem");


            xn.Attributes.RemoveNamedItem("Count");




            doc.Save("order.xml");
            Console.WriteLine("删除成功");
            Console.ReadKey();
            #endregion


        }


    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值