您的位置:首页 > 编程语言 > ASP

读写xml(C#例子,asp.net)

2007-11-02 16:51 549 查看
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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: