现在的位置: 首页 > 综合 > 正文

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

2013年09月03日 ⁄ 综合 ⁄ 共 1778字 ⁄ 字号 评论关闭

        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); //保存        }

抱歉!评论已关闭.