c#对xml多属性节点的增加,删除,修改操作源码

    技术2025-02-16  14

    别人的代码,可以借鉴一下,先保留明天上公司摘抄一下。

    using System;

    using System.Collections;

    using System.ComponentModel;

    using System.Data;

    using System.Drawing;

    using System.Web;

    using System.Web.SessionState;

    using System.Web.UI;

    using System.Web.UI.WebControls;

    using System.Web.UI.HtmlControls;

    using System.Xml;

     

    private XmlDocument xmlDoc;

    //load xml file

    private void LoadXml()

    {

    xmlDoc=new XmlDocument();

    xmlDoc.Load(Server.MapPath("User.xml"));

    }

    //添加节点

    private void AddElement()

    {

    LoadXml();

    XmlNode xmldocSelect=xmlDoc.SelectSingleNode("user");

    XmlElement el=xmlDoc.CreateElement("person");

    //添加person节点

    el.SetAttribute("name","风云");

    //添加person节点的属性"name"

    el.SetAttribute("sex","");

    //添加person节点的属性 "sex"

    el.SetAttribute("age","25");

    //添加person节点的属性 "age"

    XmlElement xesub1=xmlDoc.CreateElement("pass");

    //添加person节点的里的节点

    xesub1.InnerText="123";

    //设置文本节点

    el.AppendChild(xesub1);

    XmlElement xesub2=xmlDoc.CreateElement("Address");

    xesub2.InnerText="昆明";

    //设置文本节点

    el.AppendChild(xesub2); xmldocSelect.AppendChild(el); xmlDoc.Save(Server.MapPath("user.xml"));

    }

    //修改节点

    private void UpdateElement()

    {

    LoadXml();

    XmlNodeList nodeList=xmlDoc.SelectSingleNode("user").ChildNodes;

    //获取bookstore节点的所有子节点

    foreach(XmlNode xn in nodeList)

    //遍历所有子节点

    {

    XmlElement xe=(XmlElement)xn;

    //将子节点类型转换为XmlElement类型

    if(xe.GetAttribute("name")=="风云")

    //如果name属性值为风云

    {

    xe.SetAttribute("name","发明");

    //如果下面有子节点在下走

    XmlNodeList nls=xe.ChildNodes;

    //继续获取xe子节点的所有子节点

    foreach(XmlNode xn1 in nls)

    //遍历

    {

    XmlElement xe2=(XmlElement)xn1;

    //转换类型

    if(xe2.Name=="pass")

    //如果找到

    {

    xe2.InnerText="66666";

    //则修改

    break;

    }

    }

    break;

    }

    }

    xmlDoc.Save(Server.MapPath("user.xml"));

    //保存

    }

    //删出节点

    private void deleteNode()

    {

    LoadXml();

    XmlNodeList xnl=xmlDoc.SelectSingleNode("user").ChildNodes;

    foreach(XmlNode xn in xnl)

    {

    XmlElement xe=(XmlElement)xn;

    if(xe.GetAttribute("name")=="发明")

    {

    //xe.RemoveAttribute("name");

    //删除name属性

    xe.RemoveAll();

    //删除该节点的全部内容

    break;

    }

    }

    xmlDoc.Save(Server.MapPath("user.xml"));

    //保存

    }

    private void showIt()

    {

    LoadXml();

    XmlNode xn=xmlDoc.SelectSingleNode("user");

    XmlNodeList xnl=xn.ChildNodes;

    foreach(XmlNode xnf in xnl)

    {

    XmlElement xe=(XmlElement)xnf;

    // Console.WriteLine(xe.GetAttribute("name"));

    //显示属性值

    // Console.WriteLine(xe.GetAttribute("sex"));

    // XmlNodeList xnf1=xe.ChildNodes;

    // foreach(XmlNode xn2 in xnf1)

    // {

    // Console.WriteLine(xn2.InnerText);

    //显示子节点点文本

    // }

    }

    }

    最新回复(0)