C#语言编程有很多值得学习的地方,这里我们主要介绍C#编程实现显示XML文件,包括介绍在Web Form中分别增加相应的四个Label等方面。
C#编程实现显示XML文件
由于XML的易共享性等众多优点,XML技术越来越多地被应用于企业数据处理等领域,如应用于企业报表、新闻发布、会计数据处理等等。
XML正快速成为从中间层传送数据到桌面的工具,由于XML的数据可以通过中间层代理与多种后端(数据库)源集成,目前绝大多数数据库制造商已全面支持XML技术,提供了各种强大功能处理XML数据。
Microsoft的.NET围绕XML这一核心提供了一个强大而快速的开发工具——C#,它具有前所未有的高开发效率,特别是在XML编程方面。
C#提供了许多相关类处理XML数据,如处理stream的类: XmlReader和XmlWriter; DOM的类:XmlNode、XmlDocument和XmlElement等; Xpath的类:XmlNavigator;XSLT的类:XslTransform。
C#编程实现显示XML文件内容
用C#编程实现显示XML文件中信息的方法是使用.NET提供的标准类把XML文件内容读入一个StreamReader类对象中,再用 XmlDataDocument类的DataSet读XML的方法去读XML信息到DataSet中,DataSet再以DataView的方式赋给一个 Web Form上的DataGrid,最后由DataBind显示数据,具体实现代码如下:
复制
using System.Xml; //处理XML必须加的Namespace,还需在References中加System.XML.Dll using System.IO; //读XML文件必须加的Namespace 然后在Page_Load中加入如下代码: protected void Page_Load(object sender, EventArgs e){ string datafile="guest.xml" ; //假设XML文件名为guest.xml StreamReader tyj=new StreamReader(Server.MapPath(datafile)); XmlDataDocument datadoc = new XmlDataDocument(); //创建该对象为了读取XML datadoc.DataSet.ReadXml(tyj); //读取guest.xml文件内容 DataGrid1.DataSource = datadoc.DataSet.Tables[0].DefaultView; //设置DataGrid数据源 DataGrid1.DataBind(); //绑定 datadoc=null ; //释放资源 tyj.Close();} //释放StreamReader类,这非常重要,否则下次打开会显示文件已经被使用 对应于显示用的Web Form中DataGrid的功能,我们需要增加下面的函数: protected void OnSelectName(object sender,EventArgs e) { Session["select_name"]=(string)DataGrid1.SelectedItem.Cells[1].Text.ToString(); //把选定的 DataGrid某行中的一个单元中的值(Name)存入一个会话变量中,以便下一页用 Response.Redirect("xml_manage.aspx");} //转到有增加删除功能的管理页 Web Form加入以下代码: <asp:DataGrid id=DataGrid1 runat="server" onselectedindexchanged="OnSelectName" > <property name="Columns"> <asp:buttoncolumn Text="选择" commandname="Select" /> </property>
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
代码中划线部分的作用是当按了“选择”按钮后,执行OnSelectName()中的程序,把选定的 DataGrid中某行中的一个单元中的值(Name)存入一个会话变量中,然后转到下一页。
增加XML文件内容
在Web Form中分别增加相应的四个Label(姓名,来自哪里,Email地址,留言内容)和四个TextBox和一个用于提交的Button,并为这button增加如下代码:
复制
string datafile = "guest.xml" ;XmlDocument xmldocument = new XmlDocument() ; xmldocument.Load(Server.MapPath(datafile)) ; //把guest.xml读到xmldocument中 DocumentNavigator navigator = new DocumentNavigator(xmldocument) ; //最重要的类 navigator.MoveToDocumentElement() ; navigator.Insert(System.Xml.TreePosition.FirstChild,
XmlNodeType.Element, "Guest","","") ;//插入节点Guest navigator.Insert(System.Xml.TreePosition.FirstChild,
XmlNodeType.Element, "Name","","") ; navigator.Insert(System.Xml.TreePosition.FirstChild,
XmlNodeType.Text,"Name","","") ; navigator.Value=Name.Text ; //为该节点赋值 navigator.MoveToParent() ; //返回父节点 Guest …… //使用同类语句,在元素Name下插入另一些元素如Country、E-mail地址和留言等 xmldocument.Save(Server.MapPath(datafile)); //最后保存这个XML文档 navigator=null ; xmldocument=null ; //释放XML文档,这样其他程序可以用它 上述代码使用DocumentNavigator类增加元素和内容,注意使用后要释放资源。 删除XML文件内容 删除选定记录,对于你上面选择的节点,下面代码可查找到该节点并清除选中的信息: string datafile = "guest.xml" ; XmlDocument xmldocument = new XmlDocument() ; xmldocument.Load(Server.MapPath(datafile)) ; //把guest.xml读到xmldocument中 DocumentNavigator navigator = new DocumentNavigator(xmldocument) ; navigator.MoveToDocumentElement() ; navigator.Select("/Guests/Guest[Name=""+Session["select_name"]+""]"); //参数是XPath navigator.RemoveSelected(); //执行删除 xmldocument.Save(Server.MapPath(datafile)); //最后保存这个XML文档 navigator=null; //释放类 xmldocument=null ; //释放XML文档,这样其他程序可以用它
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
C#编程实现显示XML文件结论
综上可知,C#编写XML应用程序不但快捷而且方便,在编写ASP.NET数据库应用程序时,用XML文件替代一些小的Table,能减少许多数据库存取连接,也能让其他网络程序更易使用这些数据。
目前XML的主要瓶颈在于文件系统的读出或写入,故应使用更多内存和缓存方式,如果信息量不是巨大无比且修改量也较小,而浏览量巨大的话,使用XML方法将是很好的选择;相反,如数据量巨大,应考虑使用支持XML的数据库,无论你使用ADO+连接其他数据库,还是使用SQL server,C#中都有直接的类函数可让这些数据库中的信息直接和XML交互访问。
【编辑推荐】