根据XML根元素属性进行增删改

本文介绍了一种使用C#进行XML文件操作的方法,包括如何在XML文件中创建、更新及删除带有特定属性的节点。通过具体的代码示例展示了如何实现这些功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        public void WriteXML(string FileName, string UserName, string UserMail,string XmlAttr)

        {           

            myDoc.Load(FileName);//加载XML文件

            XmlElement root = myDoc.SelectSingleNode("//Catalog[@id='" + XmlAttr + "']") as XmlElement; //获取到父节点

         XmlNode node = (XmlNode)myDoc.CreateElement(GetStringEle(XmlAttr)); //建立新的子节点  

 

            XmlAttribute attr = myDoc.CreateAttribute("用户名"); //添加属性-用户名

            attr.InnerText = UserName;

            node.Attributes.Append(attr);

 

            XmlAttribute attr1 = myDoc.CreateAttribute("用户邮件"); //添加属性--邮件地址

            attr1.InnerText = UserMail;

            node.Attributes.Append(attr1);

 

            root.AppendChild(node);//将节点加入根节点中

            myDoc.DocumentElement.InsertAfter(root, myDoc.DocumentElement.ChildNodes[0]);  

            myDoc.Save(FileName);//保存

        }

 

        /// 根据UserName更新UserMail并写入XML文件

        public void UpdateXML(string FileName, string UserName, string UserMail, string XmlAttr)

        {

            myDoc.Load(FileName);//加载XML文件      

            XmlElement child = (XmlElement)myDoc.SelectSingleNode("//" + GetStringEle(XmlAttr) + "[@用户名='" + UserName + "']");//搜索指定的节点

            string name = child.GetAttribute("用户名");

            if (name == UserName)

            {

                child.Attributes["用户邮件"].Value = UserMail;            

                myDoc.Save(FileName);

            }          

        }

        /// 将元素为UserName的节点从XML文件中删除

        public void DeleteNode(string FileName, string UserName, string XmlAttr)

        {

            myDoc.Load(FileName);//加载XML文件

            XmlElement root = myDoc.SelectSingleNode("//Catalog[@id='" + XmlAttr + "']") as XmlElement; //获取到父节点

            XmlNode myNode = (XmlNode)myDoc.SelectSingleNode("//" + GetStringEle(XmlAttr) + "[@用户名='" + UserName + "']");//获取节点列表

            root.RemoveChild(myNode);

            myDoc.Save(FileName); //保存        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值