asp.net操作xml增删改示例分享

时间:2022-09-25 18:57:38

代码如下:


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); 
            //显示子节点点文本 
    // } 
    } 

 

Xml的样式: 

复制代码代码如下:


<?xml version="1.0" encoding="gb2312"?> 
<user> 
    <person> </person> 
    <person name="风拉" sex="男" age="25"> 
        <pass>123</pass> 
        <Address>大明</Address> 
    </person> 
    <person name="风云" sex="女" age="25"> 
        <pass>123</pass> 
        <Address>昆明</Address> 
    </person> 
</user>