以下方法对XML操作的思想是将XML数据读到datatable中,对其进行操作, 再将其写回到到XML文件中去. 操作的实质是对datatable进行操作. using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class _Default : System.Web.UI.Page ... { protected void Page_Load(object sender, EventArgs e) ...{ } //读取数据 protected void Button1_Click(object sender, EventArgs e) ...{ DataSet ds = new DataSet(); ds.ReadXml(Server.MapPath("book.xml")); if (ds.Tables.Count > 0) ...{ this.GridView1.DataSource = ds; this.GridView1.DataBind(); } } //过滤数据 protected void Button2_Click(object sender, EventArgs e) ...{ DataSet ds = new DataSet(); ds.ReadXmlSchema(Server.MapPath("book.xsd")); ds.ReadXml(Server.MapPath("book.xml")); DataView dv = new DataView(ds.Tables[0]); dv.Sort = "price desc"; //dv.RowFilter = "title = 'database设计'"; this.GridView1.DataSource = dv; this.GridView1.DataBind(); } //添加记录 protected void Button3_Click(object sender, EventArgs e) ...{ DataSet ds = new DataSet(); ds.ReadXml(Server.MapPath("book.xml")); ds.ReadXmlSchema(Server.MapPath("book.xsd")); DataTable dt = ds.Tables[0]; DataRow dr = dt.NewRow(); dr[0] = "1"; dr[1] ="2"; dr[2] = "3"; dt.Rows.Add(dr); // ds.Tables.Add(dt); ds.WriteXml(Server.MapPath("book.xml")); this.GridView1.DataSource = ds; this.GridView1.DataBind(); } //更新数据 protected void Button4_Click(object sender, EventArgs e) ...{ DataSet ds = new DataSet(); ds.ReadXml(Server.MapPath("book.xml")); ds.ReadXmlSchema(Server.MapPath("book.xsd")); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) ...{ if (ds.Tables[0].Rows[i]["title"].ToString().Trim() == "asp.net") ...{ for (int j = 0; j < ds.Tables[0].Columns.Count; j++) ...{ ds.Tables[0].Rows[i][j] = j; } } } ds.AcceptChanges(); ds.WriteXml(Server.MapPath("book.xml")); this.GridView1.DataSource = ds; this.GridView1.DataBind(); } protected void Button5_Click(object sender, EventArgs e) ...{ this.del(10); } //删除记录 private void del(int strid) ...{ DataSet ds = new DataSet(); ds.ReadXml(Server.MapPath("book.xml")); ds.ReadXmlSchema(Server.MapPath("book.xsd")); ds.Tables[0].Rows[strid].Delete(); ds.AcceptChanges(); ds.WriteXml(Server.MapPath("book.xml")); this.GridView1.DataSource = ds; this.GridView1.DataBind(); }}