C#中删除XML节点实例|方法
删除XML节点
本节通过一个实例介绍如何在程序中删除XML文件中的节点。实例运行结果如图1所示。
程序开发步骤如下所示。
(1)新建一个网站,命名为31_03,其主页默认为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("");
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("");
}
完整程序代码如下:
★ ★★★★Default.aspx页面设计文件完整程序代码★★★★★
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
删除XML节点
★ ★★★★Default.aspx.cs页面代码文件完整程序代码★★★★★
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;
using System.Xml;
using System.Xml.Xsl;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
XmlDocument doc = new XmlDocument();
doc.Load(Server.MapPath("test.xml"));
XslTransform trans = new XslTransform();
trans.Load(Server.MapPath("test.xsl"));
Xml1.Document = doc;
Xml1.Transform = trans;
}
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;