前台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的查、删、添、改相关推荐

  1. XML 增、删、改和查示例

    1.已知有一个xml文件(bookstore.xml)如下: <?xml version="1.0" encoding="gb2312"?> < ...

  2. XmlDocument类

    XmlDocument类是.NET框架的DOC解析器.XmlDocument将XML视为树状结构,它装载XML文档,并在内存中构建该文档的树状结构.下面来看下XmlDocument提供了哪些功能. 一 ...

  3. XmlDocument类详解

     XmlDocument类 FreeEIM XmlDocument类是.NET框架的DOC解析器.XmlDocument将XML视为树状结构,它装载XML文档,并在内存中构建该文档的树状结构.下面 ...

  4. C#中XmlDocument读取和创建 XML 文档

    系列文章目录 C#处理XML 数据的技术方法总结 XmlDocument读取和创建 XML 文档 XmlWriter类提供一种快速非缓存的只进 XML 数据生成方式 XmlReader类提供一种快速非 ...

  5. XmlDocument类的常见使用

    XmlDocument类 1.DocumentElement属性返回根标签(不是根节点). 2.XmlElement继承自XmlNode.可以通过XmlElement类对象获取属性的值,将XmlNod ...

  6. Java工具类——通过配置XML验证Map

    Java工具类--通过配置XML验证Map 背景 在JavaWeb项目中,接收前端过来的参数时通常是使用我们的实体类进行接收的.但是呢,我们不能去决定已经搭建好的框架是怎么样的,在我接触的框架中有一种 ...

  7. 实体类转换成Xml格式实例

    最近在家公司实习,接触到了报关系统,有些海关报文是需要Xml格式来进行拼接的,所以就开始学起了将实体类转换成Xml格式的写法. 具体Xml是什么大家可以从这个链接点进去了解:Xml教程 我们在进行数据 ...

  8. java代码建立删除vpn_Java类集综合练习——信息管理(增、删、改、查)

    一.实现功能--模拟学生选课功能 1.选择课程 2.修改所选课程 二.实现功能--模拟学生信息管理功能 1.添加学生信息 2.修改学生信息 二.主要代码(在同一个包里) 1.课程类 1 public ...

  9. C# 使用XmlDocument类读取XML文件

    经过3天的测试验证发现使用XmlDocument读取XML文件的各个节点的值很容易实现. 测试XML文件如下 products.xml: <Table> <Product> & ...

最新文章

  1. 解题报告:CF1307D Cow and Fields(最短路、最优解不等式化简)
  2. bzoj1001:[BeiJing2006]狼抓兔子
  3. 信息学奥赛一本通(C++)在线评测系统——基础(三)数据结构 —— 1339:【例3-4】求后序遍历
  4. Altium Designer 18/AD 设置禁止布线层和铜皮或者其他线之间的间距
  5. Finally语句块的运行
  6. 《零基础看得懂的C++入门教程 》——(9)结构体原来如此
  7. 聚焦国内名企开源!OSCAR 开源先锋日(1020)全部议程首次曝光
  8. 问题 G: Search Problem (IV)
  9. C#之向文件追加内容
  10. 编译器的不同,导致运行结果不一样
  11. 一种基于复制粘贴的cam350邮票孔拼版教程(一)
  12. DES、3DES、AES以及RSA加密介绍
  13. 逃跑h5小游戏源码熊出没手机游戏
  14. 前端过滤特殊字符、表情包
  15. PHP中smart原则,目标smart原则 “smart原则”什么意思?
  16. MOOS程序解析记录(1)
  17. 针对云主机卡死问题的定位分析方法
  18. 武汉市申请国家现代农业产业科技创新中心发展奖励标准及申请要求
  19. 马云说:“未来是大数据的时代”
  20. 纪念品分组 java实现_纪念品分组 (C语言代码)

热门文章

  1. 神策 2020 数据驱动用户大会主会场亮点回顾(内附回放)
  2. 深入理解ES6--1.块级绑定
  3. Ubuntu 修改mysql存放路径后无法启动解决办法
  4. git fetch 命令
  5. 浅谈APP流式分页服务端设计(转)
  6. OneAlert 入门(一)——事件流
  7. PowerDesigner 正向工程 和 逆向工程 说明
  8. 也谈ORACLE备份与恢复
  9. Spread for Windows Forms快速入门(2)---设置Spread表单
  10. 【转】#ifndef作用