admin 管理员组文章数量: 1086019
2024年4月19日发(作者:water是什么意思)
维普资讯
ASP.NET下对XML文件内容的操作
张永和
摘要本文介绍了在ASP.NET下,对XML文档进行添加、删除、更新等操作。
关键词 ASP.NET,XML,C#,DataGrid
项目类型中选择Visual C样项目,在模板中选择ASP.NET Web
一
、
刖置
应用程序。如图1所示。
可扩展标记语言(简称XML)是Web应用的一种新技术,
是万维网联盟(W3C)制定的的标准。XML简化了网络中数据
交换和表示,使得代码、数据和表示可以分离,可以作为数据
交换的标准格式。
XML文档是纯文本,可使用文本编辑器和可视化开发环
第2步:在WebForm1.aspx设计窗体中进行设置。如图2
所示,控件属性见下表。
控
Tnnilat
Tnnilat
Tnnilat
件 设置拄件的■性
ID=llztUmlDiT ̄= m
ID=山d ∞;。I t= m
ID=.b【^羽∞;。I t= m
ID=1]/Us ̄ff);Tm=Nul1
境的任何工具进行创建和编辑,程序可以更简单,而在需要存
储大量数据的场合,一个数据库的XML前端就可以满足需
要,因此XML提供了从小配置文件到公司级数据仓库的可扩
日■hl ID=hA棚
ID= - m; ■ d=Mm;
展性。基于内容的数据标识,因而可被不同程序用于不同用
途。XML对格式的定义更为严格,并具有层次结构,处理起
n■Qid
J^矗 G爿奠矗- m= k;
来更加容易。它是与厂商无关的标准,可以任选一个解析器来
处理。
E墅受 . ..
本文把XML做一个数据仓库,讲述如何对XML文档进行
添加、插入、更新、删除等操作。
『.———————一
二、实现
第1步:打开VS.NET,在[文件】一>[新建】一>[项目】,在
图2
单击DataGrid属性窗口上的【属性设计器(B)...】链接,打
开属性窗口,选择“列”,从可用列中选取三个可用列(第一
个列的页眉文本=用户编号,数据字段=userID;第二个列的
页眉文本(H)=用户名,数据字段=name;第二个列的页眉文
本=用户名,数据字段=address),一个编辑、更新、取消的
图l
列;一个删除列。如图3所示。
i; 20 06.龋4与
10
i
,
一
,
维普资讯
图3
第3步:在解决方案资料管理器\operatorXML项目下建立
一
个XML文件,文件名设为users.xml。
第4步:在WebForm1.aspx.cs中添加如下代码:
(1)在开头引用区中加入要引用的名字空间:using Sys-
tern.Xml;
(2)添加DataGrid子程序,实现数据显示,代码如下:
private void dataGridBind()
f
DataSet myDS=new DataSet():
myDS.ReadXml(Server.MapPath( users.xml )):
DataView dv=new DataView(myDS.Tables【01):
//按条件排序
dv.Sort= userlD :
DataGrid1.DataSource=dv;
DataGrid1.DataBind():
}
.
(3)添加保护类型变量,为了获取一个用户编号。
//定义一个随机变量
protected Random md=new Random():
(4)在事件程序Page_Load中添加如下代码:
_f(!IsPostBack)
{
dataGridBind()://初始化随机数
IblUserlD.Text=md.Next(1000,9999).ToString():
}
第5步:,双击控件btAdd事件。代码如下:
//在XML文件中添加记录
private void btAdd
_
Click(object sender.System.EventAr
gse)
{
_f(tbxUserlD.Text!=IblUserlD.Text)
{
Response.Write( <script language=javascript>alert
( 编号不正确.请填写后边给出的数据! )</script> ):
return:
}
if(tbxName.Text==~)
f
Response.Write( <script language=javascript>alert
( 用户名没有填写j )</script> ):
return;
}
If(tbxAddress.Text==~)
f
Response.Write( <script language=javascript>alert
( 地址没有填写I )</script> )
return;
)
XmlDocument xmldoc=new XmlDocument():
xmldoc.Load(Server.MapPath( users.xml )):
XmlNode node=xmldoc.SeIectSingIeNOde( //
user【userlD=一+tbxUserlD.Text.ToString()+~l )
_f(nodel=nul1)
f
Response.Write( <script language=javascript>
alert( 验证失败,请重新填写编号I )</script> ):
//重新获取一个随机数
IblUserlD.Te =md.Next(1000,9999).ToString():
return;
}
XmINode root=xmldoc.DocumentElement;
XmlNode newElem=xmldoc.CreateElement( user ):
XmlNode subElem=xmldoc.CreateElement( userlD ):
subElem.InnerText=tbxUserlD.Text.ToString():
newElem.AppendChiM(subElem):
subElem=xmldoc.CreateElement( name ):
subElem.InnerText=tbxName.Text.ToString():
newElem.AppendChild(subElem):
subElem=xmldoc.CreateElement( address ):
subElem.InnerText=tbxAddress.Text.Trim():
newElem.AppendChild(subElem):
root.AppendChild(newElem):
xmldoc.SaMe(Server.MapPath( usem.xml )):
Response.Write( <script language=javascript>alert( 恭
喜!你已经提交成功! )</script> );
//重新获取一个随机数
IblUserlD.Text=md.Next(1000,9999).ToString():
tbxUserlD.Text ~:
tbxName.Text=~:
tbxAddress.Text=~:
//将控件重新绑定到它的数据源
dataGridBind():
}
第6步:在DataGnd窗口中,双击控件的EditCommend事
件。代码如下:
private void DataGridl_EditCommand(object source.Sys-
tem.Web.UI.WebControls.DataGridCommandEventArgs e)
。√ _一_ \¨ ~_◆一鬻i煮. ≯l。壤一 l~
..
维普资讯
… ll1一
FOl 1.0 W MAS i 较 段《》 ~RAM …
.
一一磐鞴 零0一一嚼
蚋一 粳
(
一:摹 0
{
trV
//通过Item属性的Itemlndex属性获得单击顶的索引
DataGrid1 Editltemlndex=(int)e.Item.Itemlndex;
{
//将控件重新绑定到它的数据源
dataGridBind《):
}
第7步:在DataGrid窗口中,双击控件的CancelCommend
事件。代码如下:
//取消编辑
private void DataGrid 1 CancelCommand《object source.
System.Web.UI.WebControls.DataGridCommandEvent
一
Args e)
(//通过将Editltemlndex属性设置为一1切换出编辑模式
DataGrid 1.Editltemlndex=一1:
//将控件重新绑定到它的数据源
dataGridBind《):
}
第8步:在DataGfid窗口中,双击控件的UpdateCommend
事件。代码如下:
//更新×ML文件事件
private void DataGridl UpdateCommand《object source,
System.Web.UI.WebControls.DataGridCommandEvent
Args e)
{
trV
{
XmlDocument xmldoc=new XmlDocument《):
xmldoc.Load《Server.MapPath( users.xml )):
string pattern= //user【userlD=~+Conve ̄.Tolnt32
(DataGrid1.DataKeys【(int)e.Item.Itemlndex】)+~】 :
XmlNode oNode=xmldoc.SeIectS ngIeNode(pattern):
oNode.ChildNodes.Item(1) .InnerText=((TextBox)
e.Item.Cells【1】.Controls【0】).Text.Trim():
oNode.ChildNodes.Item(2) .InnerText=((TextBox)
e.Item.CeIIs【2】.Controls【0】).Text.TrIm():
xmldoc.Save(Server.MapPath( users.xml ))
Response.Write( <script language=javascript>alert(
恭喜!你已经更新成功! )</script> ):
dataGridBind():
}
catch《Exception ex)
{
Response.Write《ex.Message.ToString《))
}
}
第9步:在DataGfid窗口中,双击控件的DeleteCommend
事件。代码如下:
//删除XML文件中的记录
private void DataGrid 1 DeleteCommand《object source,
System.Web.UI.WebControls.DataGridCommandEvent
Args e)
1 9/ ̄
2
006 ̄
4
电-_翟
童
诱与 Ii
XmlDocument xmldoc=new XmlDocument《):
xmldoc Load(Server.MapPath《 users.xml )):
string pattern= //user【userlD=~+Convert.Tolnt32
(DataGrid1.DataKeys【《int)e.Item.Itemlndex】)+~】 :
XmlNode oNode=xmldoc SelectSingleNode《pattern):
oNode.ParentNode.RemoveChild《oNode):
xmldoc.Save《Server.MapPath《 users.xml )):
Response.Write《 <script language=javascript>alert《 你
已经删除成功! )</script> )
dataGridBind《):
}
catch《Exception ex)
{
Response.Write《ex.Message.ToString《)):
}
}
参考文献
1.MSDN
2.Visual c#案例教程.北京希望电子出版社
3.http://www.daima.com.cn/Down/6/20051312222238/
(收稿日期:2006年2月10日)
商务手机常用文档浏览器
成功应用于多款手机
随着中国移动通信的发展,手机已经从单一功能发展到多
重功能,从黑白屏幕发展到彩色屏幕,从简单应用发展到智能
应用。人们对手机的需求已经远远不只限于通话、收发短信、
彩信等这些日常简单的功能。手机不仅需要能够实时的收发电
子邮件,而且还需要能够下载和浏览各种文件。将来手机的发
展方向必然是智能化、多功能化和时尚化。
北京红樱枫软件有限公司通过对国内外手机制造厂商和目
前流行的手机硬件平台和智能操作系统的调查以后,根据人们
对手机市场的需求,自主研制开发了基于Intel硬件平台以及
Hopen操作环境的《商务手机常用文档浏览器(HYF DocView—
er V1.0)》产品。该产品实现了在采用Intel硬件平台以及
Hopen操作系统环境的手机上,对Adobe PDF、Microsoft
Word、PowerPoint和Excel文件进行浏览阅读。
HYF DocViewer V1.0推出后,受到了国内客户的欢迎。
根据客户反馈的信息,及市场潜在的发展趋势,北京红樱枫软
件有限公司在《商务手机常用文档浏览器(HYF DocViewer
V1.0)》的基础上,推出了基于Intel硬件平台以及LinuxQT
操作环境的新版本《商务手机常用文档浏览器(HYF DocView—
er V2.0)》,该版本在对应点阵字排版的基础上,追加对应
矢量字的显示和排版功能,浏览效果较第一代产品更加突出。
版权声明:本文标题:ASP.NET下对XML文件内容的操作 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1713532142a639384.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论