本節通過一個實例介紹如何在程序中刪除XML文件中的節點。實例運行結果如圖1所示。
程序開發步驟:
(1)新建一個網站,其主頁默認為Default.ASPx。
(2)在Default.ASPx頁面中添加一個Xml控件,用來顯示XML文件中的內容,然後添加一個TextBox控件和一個Button控件,分別用來輸入要刪除的XML節點名和執行刪除操作。
(3)程序主要代碼如下。
當單擊【刪除】按鈕時,程序首先判斷TextBox1文本框中內容是否為空,如果不為空,則根據TextBox1文本框中內容在XML文件中找到對應節點,並通過XMLElement類的RemoveChild方法將該節點刪除,否則,彈出“請輸入要刪除的節點”信息提示框,並將網頁重新定向到該頁面。【刪除】按鈕的Click事件代碼如下:
protected void Button1_Click(object sender, EventArgs e)
{
if (TextBox1.Text.Trim() != "")
{
XmlDocument doc = new XMLDocument();
doc.Load(Server.MapPath("test.XML"));
XMLNodeList nodes;
XMLElement root = doc.DocumentElement;
nodes = root.SelectNodes("descendant::BOOK[TITLE='" + TextBox1.Text.Trim() + "']");
foreach (XMLNode node in nodes)
{
root.RemoveChild(node);
}
TextBox1.Text="";
Response.Write("<script>alert('刪除成功')</script>");
doc.Save(Server.MapPath("test.XML"));
XslTransform trans = new XslTransform();
trans.Load(Server.MapPath("test.xsl"));
XML1.Document = doc;
XML1.Transform = trans;
}
else
Response.Write("<script>alert('請輸入要刪除的節點');location='Javascript:history.go(-1)';</script>");
}
完整程序代碼如下:
★ ★★★★Default.ASPx頁面設計文件完整程序代碼★★★★★
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.ASPx.cs" Inherits="_Default" %>
< !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xHtml1-transitional.dtd">
< html XMLns="http://www.w3.org/1999/xHtml" >
< head runat="server">
< title>刪除XML節點</title>
< /head>
< body>
< form id="form1" runat="server">
< div>
< table align="center" border="1" cellpadding="0" cellspacing="0" style="width: 245px" bordercolor="#66cccc">
< tr><td style="font-size: 9pt; background-color: #66cccc; text-align: center;">
刪除XML節點</td></tr>
< tr>
< td style="font-size: 9pt; text-align: center; background-color: #ccffff;">
< asp:Xml ID="XML1" runat="server"></ASP:XML></td>
< /tr>
< tr>
< td style="text-align: center; font-size: 9pt; background-color: #ccffff;">
< asp:Label ID="Label1" runat="server" Font-Size="9pt" Text="書名:"></ASP:Label>
< asp:TextBox ID="TextBox1" runat="server" Font-Size="9pt" Width="92px"></ASP:TextBox>
& nbsp;
< ASP:Button ID="Button1" runat="server" Font-Size="9pt" OnClick="Button1_Click" Text="刪除" /></td>
< /tr>
< /table>
< /div>
< /form>
< /body>
< /Html>