• (转)使用XmlDocument类完成对XML的查、删、添、改 dodo




     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


      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 窗体设计器生成的代码
     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


     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>
  • 相关阅读:
    CSS – rem, em, px
    CSS – Variables
    go等待子协程完成再结束
    go原生mysql链接
    [恢]hdu 2511
    linux中竖线'|',双竖线‘||’,&和&&的意思
    SSH隧道:端口转发功能详解
    shell脚本执行返回的状态码
    第1章 ssh命令和SSH服务详解
    shell脚本中各种括号的区别以及用法
  • 原文地址:https://www.cnblogs.com/zgqys1980/p/550151.html
Copyright © 2020-2023  润新知