zoukankan      html  css  js  c++  java
  • 读写xml(C#例子,asp.net)

    aspx页面

    <%@ Page language="c#" Codebehind="xdoc.aspx.cs" AutoEventWireup="false" Inherits="XML.xdoc" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
    <HTML>
    <HEAD>
    <title>xdoc</title>
    <meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
    <meta content="C#" name="CODE_LANGUAGE">
    <meta content="JavaScript" name="vs_defaultClientScript">
    <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
    </HEAD>
    <body MS_POSITIONING="GridLayout">
    <form id="Form1" method="post" runat="server">
    <FONT face="宋体">
    <asp:datagrid id="dg" style="Z-INDEX: 101; LEFT: 48px; POSITION: absolute; TOP:

    56px" runat="server"
    ForeColor="Black" BorderStyle="None" BorderWidth="1px" BorderColor="#DEDFDE"

    BackColor="White"
    CellPadding="4" GridLines="Vertical" AutoGenerateColumns="False"

    Width="432px">
    <SelectedItemStyle Font-Bold="True" ForeColor="White"

    BackColor="#CE5D5A"></SelectedItemStyle>
    <AlternatingItemStyle BackColor="White"></AlternatingItemStyle>
    <ItemStyle BackColor="#F7F7DE"></ItemStyle>
    <HeaderStyle Font-Bold="True" ForeColor="White"

    BackColor="#6B696B"></HeaderStyle>
    <FooterStyle BackColor="#CCCC99"></FooterStyle>
    <Columns>
    <asp:BoundColumn DataField="name" HeaderText="名字"></asp:BoundColumn>
    <asp:BoundColumn DataField="City" HeaderText="城市"></asp:BoundColumn>
    <asp:BoundColumn DataField="Email" HeaderText="邮件地

    址"></asp:BoundColumn>
    <asp:BoundColumn DataField="Time" HeaderText="时间"></asp:BoundColumn>
    </Columns>
    <PagerStyle HorizontalAlign="Right" ForeColor="Black" BackColor="#F7F7DE"

    Mode="NumericPages"></PagerStyle>
    </asp:datagrid><asp:label id="Label1" style="Z-INDEX: 102; LEFT: 112px; POSITION:

    absolute; TOP: 8px" runat="server"
    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"
    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"
    Width="64px" Text="删除"></asp:button><asp:button id="Button3" style="Z-

    INDEX: 108; LEFT: 432px; POSITION: absolute; TOP: 280px" runat="server"
    Width="56px" Text="添加" Height="80px"></asp:button><asp:textbox id="tbn"

    style="Z-INDEX: 109; LEFT: 152px; POSITION: absolute; TOP: 384px" runat="server"
    Width="328px"></asp:textbox><asp:button id="Button4" style="Z-INDEX: 110;

    LEFT: 64px; POSITION: absolute; TOP: 416px" runat="server"
    Width="424px" Text="修改邮件地址"></asp:button>
    <asp:TextBox id="tbna" style="Z-INDEX: 111; LEFT: 312px; POSITION: absolute; TOP:

    280px" runat="server"
    Width="104px"></asp:TextBox>
    <asp:TextBox id="tbc" style="Z-INDEX: 112; LEFT: 312px; POSITION: absolute; TOP:

    312px" runat="server"
    Width="104px" Height="24px"></asp:TextBox>
    <asp:TextBox id="tbe" style="Z-INDEX: 113; LEFT: 312px; POSITION: absolute; TOP:

    344px" runat="server"
    Width="104px" Height="24px"></asp:TextBox>
    <asp:Label id="Label4" style="Z-INDEX: 114; LEFT: 264px; POSITION: absolute; TOP:

    280px" runat="server">姓名:</asp:Label>
    <asp:Label id="Label5" style="Z-INDEX: 115; LEFT: 264px; POSITION: absolute; TOP:

    312px" runat="server">城市:</asp:Label>
    <asp:Label id="Label6" style="Z-INDEX: 116; LEFT: 264px; POSITION: absolute; TOP:

    344px" runat="server">Email:</asp:Label></FONT></form>
    </body>
    </HTML>

    cs文件
    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
    //新引入两个命名空间
    using System.Xml;
    using System.Xml.XPath;

    namespace XML
    {
    /**//// <summary>
    /// xdoc 的摘要说明。
    /// </summary>
    public class xdoc : System.Web.UI.Page
    {
    protected System.Web.UI.WebControls.Label Label1;
    protected System.Web.UI.WebControls.Label Label2;
    protected System.Web.UI.WebControls.Button Button1;
    protected System.Web.UI.WebControls.Label Label3;
    protected System.Web.UI.WebControls.Button Button2;
    protected System.Web.UI.WebControls.Button Button3;
    protected System.Web.UI.WebControls.DataGrid dg;
    protected System.Web.UI.WebControls.DropDownList ddl;
    protected System.Web.UI.WebControls.TextBox tbn;
    protected System.Web.UI.WebControls.Label Label4;
    protected System.Web.UI.WebControls.Label Label5;
    protected System.Web.UI.WebControls.Label Label6;
    protected System.Web.UI.WebControls.TextBox tbna;
    protected System.Web.UI.WebControls.TextBox tbc;
    protected System.Web.UI.WebControls.TextBox tbe;
    protected System.Web.UI.WebControls.Button Button4;

    private void Page_Load(object sender, System.EventArgs e)
    {//看动作名字就知道了是载入了
    if(!Page.IsPostBack)
    {
    fill();
    }
    }

    //Web 窗体设计器生成的代码#region Web 窗体设计器生成的代码
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
    //
    InitializeComponent();
    base.OnInit(e);
    }

    /**//// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
    /// 此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {
    this.Button1.Click += new System.EventHandler(this.Button1_Click);
    this.Button2.Click += new System.EventHandler(this.Button2_Click);
    this.Button3.Click += new System.EventHandler(this.Button3_Click);
    this.Button4.Click += new System.EventHandler(this.Button4_Click);
    this.Load += new System.EventHandler(this.Page_Load);

    }

    private void fill()
    {//绑定方法
    DataSet ds=new DataSet();
    ds.ReadXml(Server.MapPath("\\xml\\xml\\doc.xml"));
    dg.DataSource=ds.Tables[0];
    dg.DataBind();
    XmlDocument xd=new XmlDocument();
    xd.Load(Server.MapPath("\\xml\\xml\\doc.xml"));
    System.Xml.XmlNodeList xnl=xd.GetElementsByTagName("Name");
    ddl.Items.Clear();
    for(int i=0;i<xnl.Count;i++)
    {
    ddl.Items.Add(xnl[i].InnerText);
    }
    }
    private void Button1_Click(object sender, System.EventArgs e)
    {//查询动作
    XmlDocument xd=new XmlDocument();
    xd.Load(Server.MapPath("\\xml\\xml\\doc.xml"));
    tbn.Text=xd.SelectSingleNode("//User

    [Name='"+ddl.SelectedItem.Text+"']").ChildNodes.Item(2).InnerText.ToString();
    }
    private void Button2_Click(object sender, System.EventArgs e)
    {//删除动作
    XmlDocument xdoc=new XmlDocument();
    xdoc.Load(Server.MapPath("\\xml\\xml\\doc.xml"));
    XmlNodeList xnl=xdoc.SelectSingleNode("dbGuest").ChildNodes;

    foreach(XmlNode xn in xnl)
    {
    XmlElement xe=(XmlElement)xn;
    XmlNodeList node=xe.GetElementsByTagName("Name");//查找他的Name行
    if(node.Count>0)
    {
    if(node[0].InnerText==ddl.SelectedItem.Text)//如果当前节点的名字和下拉列表传

    来的一样,就删除
    {
    xe.RemoveAll();//111
    }
    break;
    }

    }
    xdoc.Save(Server.MapPath("\\xml\\xml\\doc.xml"));
    fill();
    }

    private void Button3_Click(object sender, System.EventArgs e)
    {//添加动作
    string name=this.tbna.Text.ToString();
    string city=this.tbc.Text.ToString();
    string email=this.tbe.Text.ToString();

    XmlDocument xd=new XmlDocument();
    xd.Load(Server.MapPath("\\xml\\xml\\doc.xml"));
    //查找dbGuest节点
    XmlNode xn=xd.SelectSingleNode("dbGuest");
    //创建user节点
    XmlElement xe_u=xd.CreateElement("User");
    //创建一个name元素
    XmlElement xe_a1=xd.CreateElement("Name");
    xe_a1.InnerText=name;//设置该元素的值
    xe_u.AppendChild(xe_a1);//把刚才创建的元素插入name节点里面去
    XmlElement xe_a2=xd.CreateElement("City");
    xe_a2.InnerText=city;
    xe_u.AppendChild(xe_a2);
    XmlElement xe_a3=xd.CreateElement("Email");
    xe_a3.InnerText=email;
    xe_u.AppendChild(xe_a3);
    XmlElement xe_a4=xd.CreateElement("Time");
    xe_a4.InnerText=(DateTime.Now).ToString();
    xe_u.AppendChild(xe_a4);
    //将User节点插入到dbGuest
    xn.AppendChild(xe_u);
    //保存XML文件
    xd.Save(Server.MapPath("\\xml\\xml\\doc.xml"));
    fill();
    }

    private void Button4_Click(object sender, System.EventArgs e)
    {//修改邮件地址动作
    XmlDocument xd=new XmlDocument();
    xd.Load(Server.MapPath("\\xml\\xml\\doc.xml"));//载入XML文件
    XmlNodeList xnl=xd.SelectSingleNode("dbGuest").ChildNodes;//获取dbGuest节点的全部子节


    foreach(XmlNode xn in xnl)//迭代所有子节点
    {
    XmlElement xe=(XmlElement)xn;//将迭代到的子节点转换成XmlElement类型
    XmlNodeList xnl2=xe.GetElementsByTagName("Name");//返回所有Name列的数据
    if(xnl2.Count>0)//如果大于零就表示有撒,
    {
    if(xnl2[0].InnerText==ddl.SelectedItem.Text)//如果该列有和被下拉列表中返回的

    值一样的数据的话
    {
    XmlNodeList xnl3=xe.ChildNodes;//再获取下面所有的子节点
    foreach(XmlNode xn1 in xnl3)//再迭代子集
    {
    XmlElement xe2=(XmlElement)xn1;//转换类型
    if(xe2.Name=="Email")//如果节点名字是Email的话
    {
    xe2.InnerText=tbn.Text;//该节点的值就替换成文本框中的
    break;
    }
    }
    break;
    }
    }
    }
    xd.Save(Server.MapPath("\\xml\\xml\\doc.xml"));
    fill();
    }
    }
    }

    xml文件
    <?xml version="1.0" encoding="utf-8"?>
    <dbGuest>
    <User>
    <Name>天轰穿</Name>
    <City>江油</City>
    <Email>7665@fds.com</Email>
    <Time>2006-5-6 16:10:56</Time>
    </User>
    <User>
    <Name>田洪川</Name>
    <City>绵阳</City>
    <Email>th@DFs.com</Email>
    <Time>2006-5-6 16:06:51</Time>
    </User>
    <User>
    <Name>黄小梅</Name>
    <City>南充</City>
    <Email>5543@ds.com</Email>
    <Time>2006-5-6 16:07:15</Time>
    </User>
    </dbGuest>
  • 相关阅读:
    JAVA实现文件遍历
    关于java的JIT知识
    经典的01背包问题
    文件遍历
    [算法之动态规划] 基本思想
    软件设计经典书籍推荐
    C++ 学习之函数重载、基于const的重载
    tomcat调用axis服务时出现 java.lang.InvocationException解决方案
    文件上传的原理
    文件上传的原理
  • 原文地址:https://www.cnblogs.com/lds85930/p/947185.html
Copyright © 2011-2022 走看看