该例题是微软广播中邵志东老师的,但是我发觉有两个小问题,一是删除,如果有相同记录,他总是删除相同记录的最前面一条,另外,删除使用RemoveAll方法,他就不删除默认属性,说白了就是不删除一级节点(不是根节点),这个我有个思路,但是不知道怎么实施(把一级节点元素化,然后删除这个,这样就不会删除根节点了) ,万望知道的朋友告诉我下,感激不尽!!我QQ 110535808

前台HTML代码
1
<%
@ Page language="c#" Codebehind="xdoc.aspx.cs" AutoEventWireup="false" Inherits="XML.xdoc" %>
2
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
3
<HTML>
4
<HEAD>
5
<title>xdoc</title>
6
<meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
7
<meta content="C#" name="CODE_LANGUAGE">
8
<meta content="JavaScript" name="vs_defaultClientScript">
9
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
10
</HEAD>
11
<body MS_POSITIONING="GridLayout">
12
<form id="Form1" method="post" runat="server">
13
<FONT face="宋体">
14
<asp:datagrid id="dg" style="Z-INDEX: 101; LEFT: 48px; POSITION: absolute; TOP: 56px" runat="server"
15
ForeColor="Black" BorderStyle="None" BorderWidth="1px" BorderColor="#DEDFDE" BackColor="White"
16
CellPadding="4" GridLines="Vertical" AutoGenerateColumns="False" Width="432px">
17
<SelectedItemStyle Font-Bold="True" ForeColor="White" BackColor="#CE5D5A"></SelectedItemStyle>
18
<AlternatingItemStyle BackColor="White"></AlternatingItemStyle>
19
<ItemStyle BackColor="#F7F7DE"></ItemStyle>
20
<HeaderStyle Font-Bold="True" ForeColor="White" BackColor="#6B696B"></HeaderStyle>
21
<FooterStyle BackColor="#CCCC99"></FooterStyle>
22
<Columns>
23
<asp:BoundColumn DataField="name" HeaderText="名字"></asp:BoundColumn>
24
<asp:BoundColumn DataField="City" HeaderText="城市"></asp:BoundColumn>
25
<asp:BoundColumn DataField="Email" HeaderText="邮件地址"></asp:BoundColumn>
26
<asp:BoundColumn DataField="Time" HeaderText="时间"></asp:BoundColumn>
27
</Columns>
28
<PagerStyle HorizontalAlign="Right" ForeColor="Black" BackColor="#F7F7DE" Mode="NumericPages"></PagerStyle>
29
</asp:datagrid><asp:label id="Label1" style="Z-INDEX: 102; LEFT: 112px; POSITION: absolute; TOP: 8px" runat="server"
30
Width="336px" BorderWidth="2px" BorderStyle="Ridge" Font-Size="X-Large" Font-Bold="True" ForeColor="Red">XmlDocument类的挖掘</asp:label><asp:dropdownlist id="ddl" style="Z-INDEX: 103; LEFT: 128px; POSITION: absolute; TOP: 280px" runat="server"></asp:dropdownlist><asp:label id="Label2" style="Z-INDEX: 104; LEFT: 64px; POSITION: absolute; TOP: 280px" runat="server">姓名:</asp:label><asp:button id="Button1" style="Z-INDEX: 105; LEFT: 64px; POSITION: absolute; TOP: 328px" runat="server"
31
Width="64px" Text="查询"></asp:button><asp:label id="Label3" style="Z-INDEX: 106; LEFT: 64px; POSITION: absolute; TOP: 384px" runat="server">邮件地址:</asp:label><asp:button id="Button2" style="Z-INDEX: 107; LEFT: 152px; POSITION: absolute; TOP: 328px" runat="server"
32
Width="64px" Text="删除"></asp:button><asp:button id="Button3" style="Z-INDEX: 108; LEFT: 432px; POSITION: absolute; TOP: 280px" runat="server"
33
Width="56px" Text="添加" Height="80px"></asp:button><asp:textbox id="tbn" style="Z-INDEX: 109; LEFT: 152px; POSITION: absolute; TOP: 384px" runat="server"
34
Width="328px"></asp:textbox><asp:button id="Button4" style="Z-INDEX: 110; LEFT: 64px; POSITION: absolute; TOP: 416px" runat="server"
35
Width="424px" Text="修改邮件地址"></asp:button>
36
<asp:TextBox id="tbna" style="Z-INDEX: 111; LEFT: 312px; POSITION: absolute; TOP: 280px" runat="server"
37
Width="104px"></asp:TextBox>
38
<asp:TextBox id="tbc" style="Z-INDEX: 112; LEFT: 312px; POSITION: absolute; TOP: 312px" runat="server"
39
Width="104px" Height="24px"></asp:TextBox>
40
<asp:TextBox id="tbe" style="Z-INDEX: 113; LEFT: 312px; POSITION: absolute; TOP: 344px" runat="server"
41
Width="104px" Height="24px"></asp:TextBox>
42
<asp:Label id="Label4" style="Z-INDEX: 114; LEFT: 264px; POSITION: absolute; TOP: 280px" runat="server">姓名:</asp:Label>
43
<asp:Label id="Label5" style="Z-INDEX: 115; LEFT: 264px; POSITION: absolute; TOP: 312px" runat="server">城市:</asp:Label>
44
<asp:Label id="Label6" style="Z-INDEX: 116; LEFT: 264px; POSITION: absolute; TOP: 344px" runat="server">Email:</asp:Label></FONT></form>
45
</body>
46
</HTML>
47

后台C#代码
1
using System;
2
using System.Collections;
3
using System.ComponentModel;
4
using System.Data;
5
using System.Drawing;
6
using System.Web;
7
using System.Web.SessionState;
8
using System.Web.UI;
9
using System.Web.UI.WebControls;
10
using System.Web.UI.HtmlControls;
11
//新引入两个命名空间
12
using System.Xml;
13
using System.Xml.XPath;
14
15
namespace XML
16

{
17
/**//// <summary>
18
/// xdoc 的摘要说明。
19
/// </summary>
20
public class xdoc : System.Web.UI.Page
21
{
22
protected System.Web.UI.WebControls.Label Label1;
23
protected System.Web.UI.WebControls.Label Label2;
24
protected System.Web.UI.WebControls.Button Button1;
25
protected System.Web.UI.WebControls.Label Label3;
26
protected System.Web.UI.WebControls.Button Button2;
27
protected System.Web.UI.WebControls.Button Button3;
28
protected System.Web.UI.WebControls.DataGrid dg;
29
protected System.Web.UI.WebControls.DropDownList ddl;
30
protected System.Web.UI.WebControls.TextBox tbn;
31
protected System.Web.UI.WebControls.Label Label4;
32
protected System.Web.UI.WebControls.Label Label5;
33
protected System.Web.UI.WebControls.Label Label6;
34
protected System.Web.UI.WebControls.TextBox tbna;
35
protected System.Web.UI.WebControls.TextBox tbc;
36
protected System.Web.UI.WebControls.TextBox tbe;
37
protected System.Web.UI.WebControls.Button Button4;
38
39
private void Page_Load(object sender, System.EventArgs e)
40
{//看动作名字就知道了是载入了
41
if(!Page.IsPostBack)
42
{
43
fill();
44
}
45
}
46
47
Web 窗体设计器生成的代码#region Web 窗体设计器生成的代码
48
override protected void OnInit(EventArgs e)
49
{
50
//
51
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
52
//
53
InitializeComponent();
54
base.OnInit(e);
55
}
56
57
/**//// <summary>
58
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
59
/// 此方法的内容。
60
/// </summary>
61
private void InitializeComponent()
62
{
63
this.Button1.Click += new System.EventHandler(this.Button1_Click);
64
this.Button2.Click += new System.EventHandler(this.Button2_Click);
65
this.Button3.Click += new System.EventHandler(this.Button3_Click);
66
this.Button4.Click += new System.EventHandler(this.Button4_Click);
67
this.Load += new System.EventHandler(this.Page_Load);
68
69
}
70
#endregion
71
72
private void fill()
73
{//绑定方法
74
DataSet ds=new DataSet();
75
ds.ReadXml(Server.MapPath("\\xml\\xml\\doc.xml"));
76
dg.DataSource=ds.Tables[0];
77
dg.DataBind();
78
XmlDocument xd=new XmlDocument();
79
xd.Load(Server.MapPath("\\xml\\xml\\doc.xml"));
80
System.Xml.XmlNodeList xnl=xd.GetElementsByTagName("Name");
81
ddl.Items.Clear();
82
for(int i=0;i<xnl.Count;i++)
83
{
84
ddl.Items.Add(xnl[i].InnerText);
85
}
86
}
87
88
private void Button1_Click(object sender, System.EventArgs e)
89
{//查询动作
90
XmlDocument xd=new XmlDocument();
91
xd.Load(Server.MapPath("\\xml\\xml\\doc.xml"));
92
tbn.Text=xd.SelectSingleNode("//User[Name='"+ddl.SelectedItem.Text+"']").ChildNodes.Item(2).InnerText.ToString();
93
94
}
95
96
private void Button2_Click(object sender, System.EventArgs e)
97
{//删除动作
98
XmlDocument xdoc=new XmlDocument();
99
xdoc.Load(Server.MapPath("\\xml\\xml\\doc.xml"));
100
XmlNodeList xnl=xdoc.SelectSingleNode("dbGuest").ChildNodes;
101
102
foreach(XmlNode xn in xnl)
103
{
104
XmlElement xe=(XmlElement)xn;
105
XmlNodeList node=xe.GetElementsByTagName("Name");//查找他的Name行
106
if(node.Count>0)
107
{
108
if(node[0].InnerText==ddl.SelectedItem.Text)//如果当前节点的名字和下拉列表传来的一样,就删除
109
{
110
xe.RemoveAll();//删除节点的所有指定属性和子集,但是不删除默认属性,我很郁闷,不知道怎么连属性一起删除,如果有朋友知道,请一定告诉我下,谢谢了!
111
112
}
113
break;
114
}
115
116
}
117
xdoc.Save(Server.MapPath("\\xml\\xml\\doc.xml"));
118
fill();
119
}
120
121
private void Button3_Click(object sender, System.EventArgs e)
122
{//添加动作
123
string name=this.tbna.Text.ToString();
124
string city=this.tbc.Text.ToString();
125
string email=this.tbe.Text.ToString();
126
127
XmlDocument xd=new XmlDocument();
128
xd.Load(Server.MapPath("\\xml\\xml\\doc.xml"));
129
//查找dbGuest节点
130
XmlNode xn=xd.SelectSingleNode("dbGuest");
131
//创建user节点
132
XmlElement xe_u=xd.CreateElement("User");
133
//创建一个name元素
134
XmlElement xe_a1=xd.CreateElement("Name");
135
xe_a1.InnerText=name;//设置该元素的值
136
xe_u.AppendChild(xe_a1);//把刚才创建的元素插入name节点里面去
137
XmlElement xe_a2=xd.CreateElement("City");
138
xe_a2.InnerText=city;
139
xe_u.AppendChild(xe_a2);
140
XmlElement xe_a3=xd.CreateElement("Email");
141
xe_a3.InnerText=email;
142
xe_u.AppendChild(xe_a3);
143
XmlElement xe_a4=xd.CreateElement("Time");
144
xe_a4.InnerText=(DateTime.Now).ToString();
145
xe_u.AppendChild(xe_a4);
146
//将User节点插入到dbGuest
147
xn.AppendChild(xe_u);
148
//保存XML文件
149
xd.Save(Server.MapPath("\\xml\\xml\\doc.xml"));
150
fill();
151
}
152
153
private void Button4_Click(object sender, System.EventArgs e)
154
{//修改邮件地址动作
155
XmlDocument xd=new XmlDocument();
156
xd.Load(Server.MapPath("\\xml\\xml\\doc.xml"));//载入XML文件
157
XmlNodeList xnl=xd.SelectSingleNode("dbGuest").ChildNodes;//获取dbGuest节点的全部子节点
158
foreach(XmlNode xn in xnl)//迭代所有子节点
159
{
160
XmlElement xe=(XmlElement)xn;//将迭代到的子节点转换成XmlElement类型
161
XmlNodeList xnl2=xe.GetElementsByTagName("Name");//返回所有Name列的数据
162
if(xnl2.Count>0)//如果大于零就表示有撒,
163
{
164
if(xnl2[0].InnerText==ddl.SelectedItem.Text)//如果该列有和被下拉列表中返回的值一样的数据的话
165
{
166
XmlNodeList xnl3=xe.ChildNodes;//再获取下面所有的子节点
167
foreach(XmlNode xn1 in xnl3)//再迭代子集
168
{
169
XmlElement xe2=(XmlElement)xn1;//转换类型
170
if(xe2.Name=="Email")//如果节点名字是Email的话
171
{
172
xe2.InnerText=tbn.Text;//该节点的值就替换成文本框中的
173
break;
174
}
175
}
176
break;
177
}
178
}
179
}
180
xd.Save(Server.MapPath("\\xml\\xml\\doc.xml"));
181
fill();
182
}
183
}
184
}
185

XML文件代码
1
<?xml version="1.0" encoding="utf-8"?>
2
<dbGuest>
3
<User>
4
<Name>天轰穿</Name>
5
<City>江油</City>
6
<Email>7665@fds.com</Email>
7
<Time>2006-5-6 16:10:56</Time>
8
</User>
9
<User>
10
<Name>田洪川</Name>
11
<City>绵阳</City>
12
<Email>th@DFs.com</Email>
13
<Time>2006-5-6 16:06:51</Time>
14
</User>
15
<User>
16
<Name>黄小梅</Name>
17
<City>南充</City>
18
<Email>5543@ds.com</Email>
19
<Time>2006-5-6 16:07:15</Time>
20
</User>
21
</dbGuest>
1

<%
@ Page language="c#" Codebehind="xdoc.aspx.cs" AutoEventWireup="false" Inherits="XML.xdoc" %>2
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >3
<HTML>4
<HEAD>5
<title>xdoc</title>6
<meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">7
<meta content="C#" name="CODE_LANGUAGE">8
<meta content="JavaScript" name="vs_defaultClientScript">9
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">10
</HEAD>11
<body MS_POSITIONING="GridLayout">12
<form id="Form1" method="post" runat="server">13
<FONT face="宋体">14
<asp:datagrid id="dg" style="Z-INDEX: 101; LEFT: 48px; POSITION: absolute; TOP: 56px" runat="server"15
ForeColor="Black" BorderStyle="None" BorderWidth="1px" BorderColor="#DEDFDE" BackColor="White"16
CellPadding="4" GridLines="Vertical" AutoGenerateColumns="False" Width="432px">17
<SelectedItemStyle Font-Bold="True" ForeColor="White" BackColor="#CE5D5A"></SelectedItemStyle>18
<AlternatingItemStyle BackColor="White"></AlternatingItemStyle>19
<ItemStyle BackColor="#F7F7DE"></ItemStyle>20
<HeaderStyle Font-Bold="True" ForeColor="White" BackColor="#6B696B"></HeaderStyle>21
<FooterStyle BackColor="#CCCC99"></FooterStyle>22
<Columns>23
<asp:BoundColumn DataField="name" HeaderText="名字"></asp:BoundColumn>24
<asp:BoundColumn DataField="City" HeaderText="城市"></asp:BoundColumn>25
<asp:BoundColumn DataField="Email" HeaderText="邮件地址"></asp:BoundColumn>26
<asp:BoundColumn DataField="Time" HeaderText="时间"></asp:BoundColumn>27
</Columns>28
<PagerStyle HorizontalAlign="Right" ForeColor="Black" BackColor="#F7F7DE" Mode="NumericPages"></PagerStyle>29
</asp:datagrid><asp:label id="Label1" style="Z-INDEX: 102; LEFT: 112px; POSITION: absolute; TOP: 8px" runat="server"30
Width="336px" BorderWidth="2px" BorderStyle="Ridge" Font-Size="X-Large" Font-Bold="True" ForeColor="Red">XmlDocument类的挖掘</asp:label><asp:dropdownlist id="ddl" style="Z-INDEX: 103; LEFT: 128px; POSITION: absolute; TOP: 280px" runat="server"></asp:dropdownlist><asp:label id="Label2" style="Z-INDEX: 104; LEFT: 64px; POSITION: absolute; TOP: 280px" runat="server">姓名:</asp:label><asp:button id="Button1" style="Z-INDEX: 105; LEFT: 64px; POSITION: absolute; TOP: 328px" runat="server"31
Width="64px" Text="查询"></asp:button><asp:label id="Label3" style="Z-INDEX: 106; LEFT: 64px; POSITION: absolute; TOP: 384px" runat="server">邮件地址:</asp:label><asp:button id="Button2" style="Z-INDEX: 107; LEFT: 152px; POSITION: absolute; TOP: 328px" runat="server"32
Width="64px" Text="删除"></asp:button><asp:button id="Button3" style="Z-INDEX: 108; LEFT: 432px; POSITION: absolute; TOP: 280px" runat="server"33
Width="56px" Text="添加" Height="80px"></asp:button><asp:textbox id="tbn" style="Z-INDEX: 109; LEFT: 152px; POSITION: absolute; TOP: 384px" runat="server"34
Width="328px"></asp:textbox><asp:button id="Button4" style="Z-INDEX: 110; LEFT: 64px; POSITION: absolute; TOP: 416px" runat="server"35
Width="424px" Text="修改邮件地址"></asp:button>36
<asp:TextBox id="tbna" style="Z-INDEX: 111; LEFT: 312px; POSITION: absolute; TOP: 280px" runat="server"37
Width="104px"></asp:TextBox>38
<asp:TextBox id="tbc" style="Z-INDEX: 112; LEFT: 312px; POSITION: absolute; TOP: 312px" runat="server"39
Width="104px" Height="24px"></asp:TextBox>40
<asp:TextBox id="tbe" style="Z-INDEX: 113; LEFT: 312px; POSITION: absolute; TOP: 344px" runat="server"41
Width="104px" Height="24px"></asp:TextBox>42
<asp:Label id="Label4" style="Z-INDEX: 114; LEFT: 264px; POSITION: absolute; TOP: 280px" runat="server">姓名:</asp:Label>43
<asp:Label id="Label5" style="Z-INDEX: 115; LEFT: 264px; POSITION: absolute; TOP: 312px" runat="server">城市:</asp:Label>44
<asp:Label id="Label6" style="Z-INDEX: 116; LEFT: 264px; POSITION: absolute; TOP: 344px" runat="server">Email:</asp:Label></FONT></form>45
</body>46
</HTML>47

1
using System;2
using System.Collections;3
using System.ComponentModel;4
using System.Data;5
using System.Drawing;6
using System.Web;7
using System.Web.SessionState;8
using System.Web.UI;9
using System.Web.UI.WebControls;10
using System.Web.UI.HtmlControls;11
//新引入两个命名空间12
using System.Xml;13
using System.Xml.XPath;14

15
namespace XML16


{17

/**//// <summary>18
/// xdoc 的摘要说明。19
/// </summary>20
public class xdoc : System.Web.UI.Page21

{22
protected System.Web.UI.WebControls.Label Label1;23
protected System.Web.UI.WebControls.Label Label2;24
protected System.Web.UI.WebControls.Button Button1;25
protected System.Web.UI.WebControls.Label Label3;26
protected System.Web.UI.WebControls.Button Button2;27
protected System.Web.UI.WebControls.Button Button3;28
protected System.Web.UI.WebControls.DataGrid dg;29
protected System.Web.UI.WebControls.DropDownList ddl;30
protected System.Web.UI.WebControls.TextBox tbn;31
protected System.Web.UI.WebControls.Label Label4;32
protected System.Web.UI.WebControls.Label Label5;33
protected System.Web.UI.WebControls.Label Label6;34
protected System.Web.UI.WebControls.TextBox tbna;35
protected System.Web.UI.WebControls.TextBox tbc;36
protected System.Web.UI.WebControls.TextBox tbe;37
protected System.Web.UI.WebControls.Button Button4;38
39
private void Page_Load(object sender, System.EventArgs e)40

{//看动作名字就知道了是载入了41
if(!Page.IsPostBack)42

{43
fill();44
}45
}46

47

Web 窗体设计器生成的代码#region Web 窗体设计器生成的代码48
override protected void OnInit(EventArgs e)49

{50
//51
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。52
//53
InitializeComponent();54
base.OnInit(e);55
}56
57

/**//// <summary>58
/// 设计器支持所需的方法 - 不要使用代码编辑器修改59
/// 此方法的内容。60
/// </summary>61
private void InitializeComponent()62

{ 63
this.Button1.Click += new System.EventHandler(this.Button1_Click);64
this.Button2.Click += new System.EventHandler(this.Button2_Click);65
this.Button3.Click += new System.EventHandler(this.Button3_Click);66
this.Button4.Click += new System.EventHandler(this.Button4_Click);67
this.Load += new System.EventHandler(this.Page_Load);68

69
}70
#endregion71

72
private void fill()73

{//绑定方法74
DataSet ds=new DataSet();75
ds.ReadXml(Server.MapPath("\\xml\\xml\\doc.xml"));76
dg.DataSource=ds.Tables[0];77
dg.DataBind();78
XmlDocument xd=new XmlDocument();79
xd.Load(Server.MapPath("\\xml\\xml\\doc.xml"));80
System.Xml.XmlNodeList xnl=xd.GetElementsByTagName("Name");81
ddl.Items.Clear();82
for(int i=0;i<xnl.Count;i++)83

{84
ddl.Items.Add(xnl[i].InnerText);85
}86
}87

88
private void Button1_Click(object sender, System.EventArgs e)89

{//查询动作90
XmlDocument xd=new XmlDocument();91
xd.Load(Server.MapPath("\\xml\\xml\\doc.xml"));92
tbn.Text=xd.SelectSingleNode("//User[Name='"+ddl.SelectedItem.Text+"']").ChildNodes.Item(2).InnerText.ToString();93

94
}95

96
private void Button2_Click(object sender, System.EventArgs e)97

{//删除动作98
XmlDocument xdoc=new XmlDocument();99
xdoc.Load(Server.MapPath("\\xml\\xml\\doc.xml"));100
XmlNodeList xnl=xdoc.SelectSingleNode("dbGuest").ChildNodes;101
102
foreach(XmlNode xn in xnl)103

{104
XmlElement xe=(XmlElement)xn;105
XmlNodeList node=xe.GetElementsByTagName("Name");//查找他的Name行106
if(node.Count>0)107

{108
if(node[0].InnerText==ddl.SelectedItem.Text)//如果当前节点的名字和下拉列表传来的一样,就删除109

{110
xe.RemoveAll();//删除节点的所有指定属性和子集,但是不删除默认属性,我很郁闷,不知道怎么连属性一起删除,如果有朋友知道,请一定告诉我下,谢谢了!111

112
}113
break;114
}115

116
}117
xdoc.Save(Server.MapPath("\\xml\\xml\\doc.xml"));118
fill();119
}120

121
private void Button3_Click(object sender, System.EventArgs e)122

{//添加动作123
string name=this.tbna.Text.ToString();124
string city=this.tbc.Text.ToString();125
string email=this.tbe.Text.ToString();126
127
XmlDocument xd=new XmlDocument();128
xd.Load(Server.MapPath("\\xml\\xml\\doc.xml"));129
//查找dbGuest节点130
XmlNode xn=xd.SelectSingleNode("dbGuest");131
//创建user节点132
XmlElement xe_u=xd.CreateElement("User");133
//创建一个name元素134
XmlElement xe_a1=xd.CreateElement("Name");135
xe_a1.InnerText=name;//设置该元素的值136
xe_u.AppendChild(xe_a1);//把刚才创建的元素插入name节点里面去137
XmlElement xe_a2=xd.CreateElement("City");138
xe_a2.InnerText=city;139
xe_u.AppendChild(xe_a2);140
XmlElement xe_a3=xd.CreateElement("Email");141
xe_a3.InnerText=email;142
xe_u.AppendChild(xe_a3);143
XmlElement xe_a4=xd.CreateElement("Time");144
xe_a4.InnerText=(DateTime.Now).ToString();145
xe_u.AppendChild(xe_a4);146
//将User节点插入到dbGuest147
xn.AppendChild(xe_u);148
//保存XML文件149
xd.Save(Server.MapPath("\\xml\\xml\\doc.xml"));150
fill();151
}152

153
private void Button4_Click(object sender, System.EventArgs e)154

{//修改邮件地址动作155
XmlDocument xd=new XmlDocument();156
xd.Load(Server.MapPath("\\xml\\xml\\doc.xml"));//载入XML文件157
XmlNodeList xnl=xd.SelectSingleNode("dbGuest").ChildNodes;//获取dbGuest节点的全部子节点158
foreach(XmlNode xn in xnl)//迭代所有子节点159

{160
XmlElement xe=(XmlElement)xn;//将迭代到的子节点转换成XmlElement类型161
XmlNodeList xnl2=xe.GetElementsByTagName("Name");//返回所有Name列的数据162
if(xnl2.Count>0)//如果大于零就表示有撒,163

{164
if(xnl2[0].InnerText==ddl.SelectedItem.Text)//如果该列有和被下拉列表中返回的值一样的数据的话165

{166
XmlNodeList xnl3=xe.ChildNodes;//再获取下面所有的子节点167
foreach(XmlNode xn1 in xnl3)//再迭代子集168

{169
XmlElement xe2=(XmlElement)xn1;//转换类型170
if(xe2.Name=="Email")//如果节点名字是Email的话171

{172
xe2.InnerText=tbn.Text;//该节点的值就替换成文本框中的173
break;174
}175
}176
break;177
}178
}179
}180
xd.Save(Server.MapPath("\\xml\\xml\\doc.xml"));181
fill();182
}183
}184
}185

1
<?xml version="1.0" encoding="utf-8"?>2
<dbGuest>3
<User>4
<Name>天轰穿</Name>5
<City>江油</City>6
<Email>7665@fds.com</Email>7
<Time>2006-5-6 16:10:56</Time>8
</User>9
<User>10
<Name>田洪川</Name>11
<City>绵阳</City>12
<Email>th@DFs.com</Email>13
<Time>2006-5-6 16:06:51</Time>14
</User>15
<User>16
<Name>黄小梅</Name>17
<City>南充</City>18
<Email>5543@ds.com</Email>19
<Time>2006-5-6 16:07:15</Time>20
</User>21
</dbGuest>
浙公网安备 33010602011771号