xml|示例1.已知有一个XML文件(bookstore.xml)如下:   
 <?xml version="1.0" encoding="gb2312"?>  
<bookstore>  
  <book genre="fantasy" ISBN="2-3631-4">  
    <title>Oberon’s Legacy</title>  
    <author>Corets, Eva</author>  
    <price>5.95</price>  
  </book>  
</bookstore>  
   
   
  1、往<bookstore>节点中插入一个<book>节点:  
    XmlDocument xmlDoc=new XmlDocument();  
   xmlDoc.Load("bookstore.xml");  
   XmlNode root=xmlDoc.SelectSingleNode("bookstore");//查找<bookstore>  
   XmlElement xe1=xmlDoc.CreateElement("book");//创建一个<book>节点  
   xe1.SetAttribute("genre","李赞红");//设置该节点genre属性  
   xe1.SetAttribute("ISBN","2-3631-4");//设置该节点ISBN属性  
   
   XmlElement xesub1=xmlDoc.CreateElement("title");  
   xesub1.InnerText="CS从入门到精通";//设置文本节点  
   xe1.AppendChild(xesub1);//添加到<book>节点中  
   XmlElement xesub2=xmlDoc.CreateElement("author");  
   xesub2.InnerText="候捷";  
   xe1.AppendChild(xesub2);  
   XmlElement xesub3=xmlDoc.CreateElement("price");  
   xesub3.InnerText="58.3";  
   xe1.AppendChild(xesub3);  
   
   root.AppendChild(xe1);//添加到<bookstore>节点中  
   xmlDoc.Save("bookstore.xml");  
   
  //================  
  结果为:  
 <?xml version="1.0" encoding="gb2312"?>  
<bookstore>  
  <book genre="fantasy" ISBN="2-3631-4">  
    <title>Oberon’s Legacy</title>  
    <author>Corets, Eva</author>  
    <price>5.95</price>  
  </book>  
  <book genre="李赞红" ISBN="2-3631-4">  
    <title>CS从入门到精通</title>  
    <author>候捷</author>  
    <price>58.3</price>  
  </book>  
</bookstore>  
   
2、修改节点:将genre属性值为“李赞红“的节点的genre值改为“update李赞红”,将该节点的子节点<author>的文本修改为“亚胜”。  
     XmlNodeList nodeList=xmlDoc.SelectSingleNode("bookstore").ChildNodes;//获取bookstore节点的所有子节点  
   foreach(XmlNode xn in nodeList)//遍历所有子节点  
   {  
    XmlElement xe=(XmlElement)xn;//将子节点类型转换为XmlElement类型  
    if(xe.GetAttribute("genre")=="李赞红")//如果genre属性值为“李赞红”  
    {  
     xe.SetAttribute("genre","update李赞红");//则修改该属性为“update李赞红”  
   
     XmlNodeList nls=xe.ChildNodes;//继续获取xe子节点的所有子节点  
     foreach(XmlNode xn1 in nls)//遍历  
     {  
      XmlElement xe2=(XmlElement)xn1;//转换类型  
      if(xe2.Name=="author")//如果找到  
      {  
       xe2.InnerText="亚胜";//则修改  
       break;//找到退出来就可以了  
      }  
     }  
     break;  
    }  
   }  
   
   xmlDoc.Save("bookstore.xml");//保存。  
   
  //=================  
  最后结果为:  
 <?xml version="1.0" encoding="gb2312"?>  
<bookstore>  
  <book genre="fantasy" ISBN="2-3631-4">  
    <title>Oberon’s Legacy</title>  
    <author>Corets, Eva</author>  
    <price>5.95</price>  
  </book>  
  <book genre="update李赞红" ISBN="2-3631-4">  
    <title>CS从入门到精通</title>  
    <author>亚胜</author>  
    <price>58.3</price>  
  </book>  
</bookstore>  
   
   
  3、删除 <book genre="fantasy" ISBN="2-3631-4">节点的genre属性,删除 <book genre="update李赞红" ISBN="2-3631-4">节点。  
 XmlNodeList xnl=xmlDoc.SelectSingleNode("bookstore").ChildNodes;  
   
   foreach(XmlNode xn in xnl)  
   {  
    XmlElement xe=(XmlElement)xn;  
   
   
     if(xe.GetAttribute("genre")=="fantasy")  
    {  
     xe.RemoveAttribute("genre");//删除genre属性  
    }  
    else if(xe.GetAttribute("genre")=="update李赞红")  
    {  
     xe.RemoveAll();//删除该节点的全部内容  
    }  
   }  
   xmlDoc.Save("bookstore.xml");  
   
  //====================  
    
  最后结果为:  
 <?xml version="1.0" encoding="gb2312"?>  
<bookstore>  
  <book ISBN="2-3631-4">  
    <title>Oberon’s Legacy</title>  
    <author>Corets, Eva</author>  
    <price>5.95</price>  
  </book>  
  <book>  
  </book>  
</bookstore>   
 4、显示所有数据。  
  XmlNode xn=xmlDoc.SelectSingleNode("bookstore");  
   
   XmlNodeList xnl=xn.ChildNodes;  
     
   foreach(XmlNode xnf in xnl)  
   {  
    XmlElement xe=(XmlElement)xnf;  
    Console.WriteLine(xe.GetAttribute("genre"));//显示属性值  
    Console.WriteLine(xe.GetAttribute("ISBN"));  
   
    XmlNodeList xnf1=xe.ChildNodes;  
    foreach(XmlNode xn2 in xnf1)  
    {  
     Console.WriteLine(xn2.InnerText);//显示子节点点文本  
    }  
   }   
   
留做参考,原文地址http://blog.yesky.com/75/richsee/1211075.shtml  
2前台代码:html  
<% Page language="c#" Codebehind="Main.aspx.cs" AutoEventWireup="false" Inherits="DsAndXML.OpXMLFile.Main" %>  
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >  
<HTML>  
    <HEAD>  
        <title>Main</title>  
        <meta name="GENERATOR" Content="Microsoft Visual Studio 7.0">  
        <meta name="CODE_LANGUAGE" Content="C#">  
        <meta name="vs_defaultClientScript" content="JavaScript">  
        <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">  
    </HEAD>  
    <body MS_POSITIONING="GridLayout">  
        <form id="Main" method="post" runat="server">  
            <FONT face="宋体">  
                <asp:DataGrid id="dgShow"  
                <asp:Label id="Label3"  
                <asp:Label id="Label2"  
                <asp:Button id="btnAdd"  
                <asp:Button id="btnDelete"  
                <asp:Button id="btnChange"  
                <asp:Button id="btnQuery"  
                <asp:DropDownList id="ddlName"  
                <asp:Label id="Label1"  
                <asp:Label id="lbEmail"  
                <asp:TextBox id="tbNewMail"  
        </form>  
    </body>  
</HTML>XML文件dbGuest.xml  
<?xml version="1.0" standalone="yes"?>  
<dbGuest>  
  <User>  
    <Name>aaa</Name>  
    <City>shanghai</City>  
    <Email>aaa263.net</Email>  
    <Message>ok</Message>  
    <STime>2004-07-12T00:00:00.0000000+08:00</STime>  
  </User>  
  <User>  
    <Name>shaoazhd</Name>  
    <City>beijing</City>  
    <Email>sss22.net</Email>  
    <Message>afsa</Message>  
    <STime>2004-7-12 15:07:39</STime>  
  </User>  
  <User>  
    <Name>Guset</Name>  
    <City>上海</City>  
    <Email>sfaf22.net</Email>  
  </User>  
  <User>  
    <Name>Guset</Name>  
    <City>上海</City>  
    <Email>ss22.net</Email>  
  </User>  
</dbGuest>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;  
using System.Xml.XPath;  
namespace DsAndXML.OpXMLFile  
{  
    /**//// <summary>  
    /// Main 的摘要说明。  
    /// </summary>  
    public class Main : System.Web.UI.Page  
    {  
        protected System.Web.UI.WebControls.Button btnQuery;  
        protected System.Web.UI.WebControls.Button btnChange;  
        protected System.Web.UI.WebControls.Button btnDelete;  
        protected System.Web.UI.WebControls.Button btnAdd;  
        protected System.Web.UI.WebControls.DropDownList ddlName;  
        protected System.Web.UI.WebControls.Label Label1;  
        protected System.Web.UI.WebControls.Label Label2;  
        protected System.Web.UI.WebControls.Label lbEmail;  
        protected System.Web.UI.WebControls.TextBox tbNewMail;  
        protected System.Web.UI.WebControls.Label Label3;  
        protected System.Web.UI.WebControls.DataGrid dgShow;  
      
        private void Page_Load(object sender, System.EventArgs e)  
        {  
            // 在此处放置用户代码以初始化页面  
            if(!IsPostBack)  
            Bind();  
        }  
        private void Bind()  
        {  
            DataSet ds = new DataSet();  
            ds.ReadXml(Server.MapPath(".\\db\\dbGuest.xml"));  
            dgShow.DataSource = ds.Tables[0].DefaultView;  
            dgShow.DataBind();  
            XmlDocument doc = new XmlDocument();  
            doc.Load(Server.MapPath(".\\db\\dbGuest.xml"));  
            XmlNodeList elemList = doc.GetElementsByTagName("Name");  
            ddlName.Items.Clear();  
            for(int i=0;i<elemList.Count;i++)  
             ddlName.Items.Add(elemList[i].InnerXml);  
              
        }  
        Web Form Designer generated code#region Web Form Designer generated code  
        override protected void OnInit(EventArgs e)  
        {  
            //  
            // CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。  
            //  
            InitializeComponent();  
            base.OnInit(e);  
        }  
          
        /**//// <summary>  
        /// 设计器支持所需的方法 - 不要使用代码编辑器修改  
        /// 此方法的内容。  
        /// </summary>  
        private void InitializeComponent()  
        {      
            this.btnQuery.Click += new System.EventHandler(this.btnQuery_Click);  
            this.btnChange.Click += new System.EventHandler(this.btnChange_Click);  
            this.btnDelete.Click += new System.EventHandler(this.btnDelete_Click);  
            this.btnAdd.Click += new System.EventHandler(this.btnAdd_Click);  
            this.Load += new System.EventHandler(this.Page_Load);  
        }  
        #endregion  
        private void btnQuery_Click(object sender, System.EventArgs e)  
        {  
            XmlDocument doc = new XmlDocument();  
            doc.Load(Server.MapPath(".\\db\\dbGuest.xml"));  
            lbEmail.Text = doc.SelectSingleNode("//User[Name=’"+ddlName.SelectedItem.Text+"’]").ChildNodes.Item(2).InnerText;  
           
        }  
        private void btnChange_Click(object sender, System.EventArgs e)  
        {  
            XmlDocument xmlDoc = new XmlDocument();  
            xmlDoc.Load(Server.MapPath(".\\db\\dbGuest.xml"));  
            XmlNodeList nodeList=xmlDoc.SelectSingleNode("dbGuest").ChildNodes;//获取dbGuest节点的所有子节点  
            foreach(XmlNode xn in nodeList)//遍历所有子节点  
            {  
                XmlElement xe=(XmlElement)xn;//将子节点类型转换为XmlElement类型  
              
                XmlNodeList node = xe.GetElementsByTagName("Name");  
                if(node.Count>0)  
                {  
                    if(node[0].InnerText==ddlName.SelectedItem.Text)  
                    {  
                        XmlNodeList nls=xe.ChildNodes;//继续获取xe子节点的所有子节点  
                        foreach(XmlNode xn1 in nls)//遍历  
                        {  
                            XmlElement xe2=(XmlElement)xn1;//转换类型  
                            if(xe2.Name=="Email")//如果找到  
                            {  
                                xe2.InnerText=tbNewMail.Text;//则修改  
                                break;//找到退出来就可以了  
                            }  
                        }  
                        break;  
                    }  
                }  
                  
            }  
            xmlDoc.Save(Server.MapPath(".\\db\\dbGuest.xml"));  
            Bind();  
        }  
        private void btnDelete_Click(object sender, System.EventArgs e)  
        {  
            XmlDocument xmlDoc = new XmlDocument();  
            xmlDoc.Load(Server.MapPath(".\\db\\dbGuest.xml"));  
            XmlNodeList xnl=xmlDoc.SelectSingleNode("dbGuest").ChildNodes;  
   
            foreach(XmlNode xn in xnl)  
            {  
                XmlElement xe=(XmlElement)xn;  
                XmlNodeList node = xe.GetElementsByTagName("Name");  
                if(node.Count>0)  
                {  
                    if(node[0].InnerText==ddlName.SelectedItem.Text)  
                        xe.RemoveAll();//删除该节点的全部内容  
                    break;  
                }  
            }  
              
            xmlDoc.Save(Server.MapPath(".\\db\\dbGuest.xml"));  
            Bind();  
        }  
        private void btnAdd_Click(object sender, System.EventArgs e)  
        {  
            XmlDocument xmlDoc = new XmlDocument();  
            xmlDoc.Load(Server.MapPath(".\\db\\dbGuest.xml"));  
            XmlNode root=xmlDoc.SelectSingleNode("dbGuest");//查找<dbGuest>  
            XmlElement xe1=xmlDoc.CreateElement("User");//创建一个<User>节点  
            XmlElement xesub1=xmlDoc.CreateElement("Name");  
            xesub1.InnerText="Guset";//设置文本节点  
            xe1.AppendChild(xesub1);//添加到<User>节点中  
            XmlElement xesub2=xmlDoc.CreateElement("City");  
            xesub2.InnerText="上海";  
            xe1.AppendChild(xesub2);  
            XmlElement xesub3=xmlDoc.CreateElement("Email");  
            xesub3.InnerText="ss22.net";  
            xe1.AppendChild(xesub3);  
   
            root.AppendChild(xe1);//添加到<dbGuest>节点中  
            xmlDoc.Save(Server.MapPath(".\\db\\dbGuest.xml"));  
            Bind();  
        }  
    }  
} 					
			
XML 增、删、改和查示例
                    80酷酷网    80kuku.com 
      
 
 
  
