(转)使用XmlDocument类完成对XML的查、删、添、改
生活随笔
收集整理的這篇文章主要介紹了
(转)使用XmlDocument类完成对XML的查、删、添、改
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前臺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#代碼
??1using?System;
??2using?System.Collections;
??3using?System.ComponentModel;
??4using?System.Data;
??5using?System.Drawing;
??6using?System.Web;
??7using?System.Web.SessionState;
??8using?System.Web.UI;
??9using?System.Web.UI.WebControls;
?10using?System.Web.UI.HtmlControls;
?11//新引入兩個命名空間
?12using?System.Xml;
?13using?System.Xml.XPath;
?14
?15namespace?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>
總結
以上是生活随笔為你收集整理的(转)使用XmlDocument类完成对XML的查、删、添、改的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JqueryUI 引领Java开发新方式
- 下一篇: MySQL基础篇(07):用户和权限管理