.Net中操作XmlDocument物件集錦 - XML做資料庫的管理程式
具體效果如下 ,因為是上課用的例題,所以比較全
廣告列表 | 功能選項 | ||||||||
阿里媽媽廣告 Google廣告 |
|
Name | Image | Alink |
---|---|---|
阿里媽媽廣告 | ~/image/aaa.gif | http://www.thc違規廣告/bbs |
天轟穿的淘寶小店 | ~/image/fdfd.jpeg | http://shop.thc違規廣告/ |
前臺程式碼如下
1
2
3ttp://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
4
5http://www.w3.org/1999/xhtml">
6
7
8
9 .style1
10 {}{
11 width: 173px;
12 }
13 .style2
14 {}{
15 width: 173px;
16 height: 26px;
17 }
18 .style4
19 {}{
20 }
21 .style5
22 {}{
23 width: 103px;
24 }
25 .style6
26 {}{
27 height: 26px;
28 width: 475px;
29 }
30 .style7
31 {}{
32 width: 475px;
33 }
34
35
36
37
38
39
40
43 廣告列表 | 45 功能選項 | ||||||||
49 51 52 | 54
88 |
91
92
93
95
96
97
98
99
100
101
102
103
104
default.aspx.cs檔案的全部程式碼
1using System;
2using System.Configuration;
3using System.Data;
4using System.Web;
5using System.Web.Security;
6using System.Web.UI;
7using System.Web.UI.HtmlControls;
8using System.Web.UI.WebControls;
9using System.Web.UI.WebControls.WebParts;
10
11using System.Xml;
12
13public partial class _Default : System.Web.UI.Page
14{
15 protected void Page_Load(object sender, EventArgs e)
16 {//頁面載入
17 string fpath = Server.MapPath("~/App_Data/Ad.xml");
18
19 if (System.IO.File.Exists(fpath))//如果指定的XML檔案已經存在,那麼就不顯示建立XML檔案的按鈕
20 {
21 Button4.Visible = false;
22 if(!IsPostBack)//如果頁面是回發的話就不用載入了,不是回發的才載入
23 Bind();
24 }
25
26
27 }
28
29 private void Bind()
30 {
31 ListBox1.Items.Clear();//為了不引起載入重複值,先清理ListBox1裡面的項,簡單來說就是每次載入項都是全新的
32 XmlDocument xd = GetXdt();
33
34 //獲取跟節點下的所有子節點
35 //XmlNodeList xnl = xd.SelectNodes("descendant::Ad[/AdList]");//或者使用下面這句,如果不清楚意思的參考Xpath語言
36 //XmlNodeList xnl = xd.SelectNodes("AdList/Ad");//再或者使用下面這句
37 XmlNodeList xnl = xd.DocumentElement.ChildNodes;
38 foreach (XmlNode xn in xnl)
39 {
40 ListBox1.Items.Add(xn.FirstChild.InnerText);
41 }
42
43 //========填充GridView
44 string fpath = Server.MapPath("~/App_Data/Ad.xml");
45 DataSet ds = new DataSet();
46 ds.ReadXml(fpath);//將XML文件載入到DataSet中去, 看到這裡, 我想大家應該能夠想到,是否我們可以所有增刪改的操作都在DataSet中來完成呢?
47 GridView1.DataSource = ds.Tables[0].DefaultView;
48 GridView1.DataBind();
49 }
50
51 /**////
52 /// 返回一個 XmlDocument 物件
53 ///
54 ///
55 private XmlDocument GetXdt()
56 {
57 string fpath = Server.MapPath("~/App_Data/Ad.xml");
58 XmlDocument xd = new XmlDocument();
59 xd.Load(fpath);
60
61 return xd;
62 }
63 protected void Button4_Click(object sender, EventArgs e)
64 {//建立XML文件
65 XmlDocument xd = new XmlDocument();
66 xd.LoadXml("
67
68 xd.Save(Server.MapPath("Ad.xml"));
69 Button4.Visible = false;
70 }
71 protected void Button1_Click(object sender, EventArgs e)
72 {//新增廣告
73 string fpath = Server.MapPath("~/App_Data/Ad.xml");
74 XmlDocument xd = GetXdt();
75
76 第一種新增節點的方法#region 第一種新增節點的方法
77 /**//*
78 //建立一個廣告節點元素
79 XmlNode xn = xd.CreateNode(XmlNodeType.Element, "Ad", null);
80 //新增廣告名節點
81 XmlNode xnname = xd.CreateNode(XmlNodeType.Element, "Name", null);
82 xnname.InnerText = tb_name.Text;
83 xn.AppendChild(xnname);
84 //新增廣告圖片地址節點
85 XmlNode xnimg = xd.CreateNode(XmlNodeType.Element, "Image", null);
86 xnimg.InnerText = tb_img.Text;
87 xn.AppendChild(xnimg);
88 //新增廣告連結指向地址
89 XmlNode xnlink = xd.CreateNode(XmlNodeType.Element, "Alink", null);
90 xnlink.InnerText = tb_link.Text;
91 xn.AppendChild(xnlink);
92 * */
93 #endregion
94
95 第二種新增節點的方法#region 第二種新增節點的方法
96
97 XmlNode xn = xd.CreateNode(XmlNodeType.Element, "Ad", null);
98 xn.InnerXml = "
99
100 #endregion
101 xd.DocumentElement.AppendChild(xn);//將整個大的節點新增到跟節點下面
102 xd.Save(fpath);
103 Bind();
104 }
105 protected void Button2_Click(object sender, EventArgs e)
106 {//修改節點 天轟穿的淘寶小店 http://shop.thc違規廣告/
107 string fpath = Server.MapPath("~/App_Data/Ad.xml");
108 XmlDocument xd = GetXdt();
109
110 XmlNodeList xnl = xd.SelectNodes("AdList/Ad");//找到所有的單個廣告節點,另外種方法參考下面ListBox1_SelectedIndexChanged方法
111 foreach (XmlNode xn in xnl)//迭代所有廣告
112 {
113 if (xn.FirstChild.InnerText == ListBox1.SelectedItem.Text)//要這樣判斷的前提是,你的XML檔案中當前節點第一個欄位肯定一定確定是ListBox1.SelectedItem.Text所顯示的值
114 {
115 for (int i = 0; i < xn.ChildNodes.Count; i++)
116 { //迴圈當前節點的所有子節點
117 switch (i)
118 {
119 case 0:
120 xn.ChildNodes[i].InnerText = tb_name.Text;
121 break;
122 case 1:
123 xn.ChildNodes[i].InnerText = tb_img.Text;
124 break;
125 case 2:
126 xn.ChildNodes[i].InnerText = tb_link.Text;
127 break;
128 }
129 }
130 }
131 }
132
133 xd.Save(fpath);
134 Bind();
135 }
136 protected void Button3_Click(object sender, EventArgs e)
137 {//刪除節點
138 string fpath = Server.MapPath("~/App_Data/Ad.xml");
139 XmlDocument xd = GetXdt();
140
141 第一種方法,比較浪費資源 http://shop.thc違規廣告/#region 第一種方法,比較浪費資源 http://shop.thc違規廣告/
142 //XmlNodeList xnl = xd.SelectNodes("AdList/Ad");
143 //foreach (XmlNode xn in xnl)
144 //{
145 // //要下面這樣判斷的前提是,你的XML檔案中當前節點第一個欄位肯定一定確定是ListBox1.SelectedItem.Text所顯示的值
146 // if (xn.FirstChild.InnerText == ListBox1.SelectedItem.Text)
147 // xd.DocumentElement.RemoveChild(xn);
148 //}
149 #endregion
150
151 第二種方法,比較直接,建議學習下Xpath相關的知識#region 第二種方法,比較直接,建議學習下Xpath相關的知識
152 string xpath = "/AdList/Ad[Name='" + ListBox1.SelectedItem.Text + "']";
153 XmlNode xn = xd.SelectSingleNode(xpath);
154
155 xn.ParentNode.RemoveChild(xn);
156 #endregion
157
158
159 xd.Save(fpath);
160 Bind();
161 }
162 protected void ListBox1_SelectedIndexChanged(object sender, EventArgs e)
163 {//點選廣告填充右邊文字框 http://shop.thc違規廣告/
164 XmlDocument xd = GetXdt();
165
166 第一種方法#region 第一種方法
167 //XmlNodeList xnl = xd.SelectNodes("AdList/Ad");//找到所有的單個廣告節點
168 //foreach (XmlNode xn in xnl)//迭代所有廣告
169 //{
170 // if (xn.FirstChild.InnerText == ListBox1.SelectedItem.Text)//要這樣判斷的前提是,你的XML檔案中當前節點第一個欄位肯定一定確定是ListBox1.SelectedItem.Text所顯示的值,否則你別罵川哥哥騙你哈,俺絕對是好人
171 // {
172 // for (int i = 0; i < xn.ChildNodes.Count; i++)
173 // { //迴圈當前節點的所有子節點
174 // switch (i)
175 // {
176 // case 0:
177 // tb_name.Text = xn.ChildNodes[i].InnerText;
178 // break;
179 // case 1:
180 // tb_img.Text = xn.ChildNodes[i].InnerText;
181 // break;
182 // case 2:
183 // tb_link.Text = xn.ChildNodes[i].InnerText;
184 // break;
185 // }
186 // }
187 // }
188 //}
189 #endregion
190
191 第二種方法#region 第二種方法
192 string xpath = "/AdList/Ad[Name='" + ListBox1.SelectedItem.Text + "']";
193 XmlNode xn = xd.SelectSingleNode(xpath);
194
195 for (int i = 0; i < xn.ChildNodes.Count; i++)
196 { //迴圈當前節點的所有子節點
197 switch (i)
198 {
199 case 0:
200 tb_name.Text = xn.ChildNodes[i].InnerText;
201 break;
202 case 1:
203 tb_img.Text = xn.ChildNodes[i].InnerText;
204 break;
205 case 2:
206 tb_link.Text = xn.ChildNodes[i].InnerText;
207 break;
208 }
209 }
210 #endregion
211 }
212}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-536507/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL資料庫管理的常用操作命令錦集MySql資料庫
- 在.NET中操作XmlDocument (轉)XML
- C#操作XML的完整例子——XmlDocument篇C#XML
- C#不使用DataSet操作XML,XmlDocument讀寫xml所有節點及讀取xml節點的資料總結C#XML
- .net中xml基本操作XML
- redis常用資料型別操作命令集錦Redis資料型別
- 2 Day DBA-管理方案物件-關於方案物件管理許可權-管理資料庫中儲存的程式程式碼物件資料庫
- 工作中 Oracle 常用資料字典集錦Oracle
- 技術問答集錦(九)資料庫系列資料庫
- 資料庫中的重要物件資料庫物件
- darknet是如何對資料集做resize的?
- SQL Server中操作XML型別資料SQLServerXML型別
- AIX命令集錦五(程式管理命令)AI
- ASP.NET程式的優化建議資料庫操作ASP.NET優化資料庫
- 資料競賽Tricks集錦
- ASP.NET 2.0中XML資料的處理ASP.NETXML
- 把list集合的內容寫入到Xml中,通過XmlDocument方式寫入Xml檔案中XML
- 檢視資料庫中的物件資料庫物件
- 資料庫和XML __ 從資料庫中提取xml資料庫XML
- SQL Server 中對XML資料的五種基本操作SQLServerXML
- 程式中減少使用 if 語句的方法集錦
- 程式中減少使用if語句的方法集錦
- 操作符過載集錦
- java8Stream操作集錦Java
- 資料庫中的XML應用例項 (轉)資料庫XML
- Partition管理問題集錦
- 4 管理資料庫例項和叢集資料庫資料庫
- 12、Oracle中的其它資料庫物件Oracle資料庫物件
- .NET關於資料庫操作的類-囊括所有的操作資料庫
- [轉]ORACLE資料庫管理員應做的事Oracle資料庫
- PHP 原生 DOM 物件操作 XMLPHP物件XML
- Asp.net 操作XMLASP.NETXML
- ASP.NET MongoDB資料庫操作類ASP.NETMongoDB資料庫
- Oracle資料庫管理——表資料庫高水位及shrink操作Oracle資料庫
- 面試集錦(六)資料結構(2)面試資料結構
- 面試集錦(六)資料結構(1)面試資料結構
- SequoiaDB資料庫之叢集管理資料庫
- 2 Day DBA-管理方案物件-管理Oracle資料庫軟體-升級資料庫-DBUA支援的資料庫版本物件Oracle資料庫