日本国产亚洲-日本国产一区-日本国产一区二区三区-日本韩国欧美一区-日本韩国欧美在线-日本韩国欧美在线观看

當(dāng)前位置:雨林木風(fēng)下載站 > 技術(shù)開發(fā)教程 > 詳細(xì)頁(yè)面

C#的Web XML編程 (轉(zhuǎn)自ourasp)

C#的Web XML編程 (轉(zhuǎn)自ourasp)

更新時(shí)間:2019-06-21 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

C#的Web XML編程
唐一均|2002-1-25
--------------------------------------------------------------------------------

由于XML的易共享性等眾多優(yōu)點(diǎn),XML技術(shù)越來越多地被應(yīng)用于企業(yè)數(shù)據(jù)處理等領(lǐng)域,如應(yīng)用于企業(yè)報(bào)表、新聞發(fā)布、會(huì)計(jì)數(shù)據(jù)處理等等。

XML正快速成為從中間層傳送數(shù)據(jù)到桌面的工具,由于XML的數(shù)據(jù)可以通過中間層代理與多種后端(數(shù)據(jù)庫(kù))源集成,目前絕大多數(shù)數(shù)據(jù)庫(kù)制造商已全面支持XML技術(shù),提供了各種強(qiáng)大功能處理XML數(shù)據(jù)。

Microsoft的.NET圍繞XML這一核心提供了一個(gè)強(qiáng)大而快速的開發(fā)工具——C#,它具有前所未有的高開發(fā)效率,特別是在XML編程方面。

C#提供了許多相關(guān)類處理XML數(shù)據(jù),如處理stream的類: XmlReader和XmlWriter; DOM的類:XmlNode、XmlDocument和XmlElement等; Xpath的類:XmlNavigator;XSLT的類:XslTransform。

顯示XML文件內(nèi)容
用C#編程實(shí)現(xiàn)顯示XML文件中信息的方法是使用.NET提供的標(biāo)準(zhǔn)類把XML文件內(nèi)容讀入一個(gè)StreamReader類對(duì)象中,再用XmlDataDocument類的DataSet讀XML的方法去讀XML信息到DataSet中,DataSet再以DataView的方式賦給一個(gè)Web Form上的DataGrid,最后由DataBind顯示數(shù)據(jù),具體實(shí)現(xiàn)代碼如下:

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" ;
//假設(shè)XML文件名為guest.xml
StreamReader tyj=new StreamReader(Server.MapPath(datafile));
XmlDataDocument datadoc = new XmlDataDocument();
//創(chuàng)建該對(duì)象為了讀取XML
datadoc.DataSet.ReadXml(tyj);
//讀取guest.xml文件內(nèi)容
DataGrid1.DataSource = datadoc.DataSet.Tables[0].DefaultView;
//設(shè)置DataGrid數(shù)據(jù)源
DataGrid1.DataBind();
//綁定
datadoc=null ;
//釋放資源
tyj.Close();}
//釋放StreamReader類,這非常重要,否則下次打開會(huì)顯示文件已經(jīng)被使用

對(duì)應(yīng)于顯示用的Web Form中DataGrid的功能,我們需要增加下面的函數(shù):

protected void OnSelectName(object sender,EventArgs e) {
Session["select_name"]=(string)DataGrid1.SelectedItem.Cells[1].Text.ToString();
//把選定的 DataGrid某行中的一個(gè)單元中的值(Name)存入一個(gè)會(huì)話變量中,以便下一頁(yè)用
Response.Redirect("xml_manage.aspx");}
//轉(zhuǎn)到有增加刪除功能的管理頁(yè)

Web Form加入以下代碼:

<asp:DataGrid id=DataGrid1 runat="server" onselectedindexchanged="OnSelectName" >
<property name="Columns">
<asp:buttoncolumn Text="選擇" commandname="Select" />
</property>

代碼的作用是當(dāng)按了“選擇”按鈕后,執(zhí)行OnSelectName()中的程序,把選定的 DataGrid中某行中的一個(gè)單元中的值(Name)存入一個(gè)會(huì)話變量中,然后轉(zhuǎn)到下一頁(yè)。

增加XML文件內(nèi)容
在Web Form中增加相應(yīng)的幾個(gè)TextBox和一個(gè)用于提交的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","","") ;//插入節(jié)點(diǎn)Guest
navigator.Insert(System.Xml.TreePosition.FirstChild, XmlNodeType.Element, "Name","","") ;
navigator.Insert(System.Xml.TreePosition.FirstChild, XmlNodeType.Text,"Name","","") ;
navigator.Value=Name.Text ;
//為該節(jié)點(diǎn)賦值
navigator.MoveToParent() ;
//返回父節(jié)點(diǎn) Guest
……
//使用同類語(yǔ)句,在元素Name下插入另一些元素如Country、E-mail地址和留言等
xmldocument.Save(Server.MapPath(datafile));
//最后保存這個(gè)XML文檔
navigator=null ;
xmldocument=null ;
//釋放XML文檔,這樣其他程序可以用它

上述代碼使用DocumentNavigator類增加元素和內(nèi)容,注意使用后要釋放資源。

刪除XML文件內(nèi)容
刪除選定記錄,對(duì)于你上面選擇的節(jié)點(diǎn),下面代碼可查找到該節(jié)點(diǎn)并清除選中的信息:

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"]+"']");
//參數(shù)是Xpath
navigator.RemoveSelected();
//執(zhí)行刪除
xmldocument.Save(Server.MapPath(datafile));
//最后保存這個(gè)XML文檔
navigator=null;
//釋放類
xmldocument=null ;
//釋放XML文檔,這樣其他程序可以用它

如需將XML文件中所有信息清除,使用“navigator.RemoveChildren();”語(yǔ)句即可實(shí)現(xiàn)。

結(jié) 論
綜上可知,C#編寫XML應(yīng)用程序不但快捷而且方便,在編寫ASP.NET數(shù)據(jù)庫(kù)應(yīng)用程序時(shí),用XML文件替代一些小的Table,能減少許多數(shù)據(jù)庫(kù)存取連接,也能讓其他網(wǎng)絡(luò)程序更易使用這些數(shù)據(jù)。

目前XML的主要瓶頸在于文件系統(tǒng)的讀出或?qū)懭耄蕬?yīng)使用更多內(nèi)存和緩存方式,如果信息量不是巨大無(wú)比且修改量也較小,而瀏覽量巨大的話,使用XML方法將是很好的選擇;相反,如數(shù)據(jù)量巨大,應(yīng)考慮使用支持XML的數(shù)據(jù)庫(kù),無(wú)論你使用ADO+連接其他數(shù)據(jù)庫(kù),還是使用SQL server,C#中都有直接的類函數(shù)可讓這些數(shù)據(jù)庫(kù)中的信息直接和XML交互訪問。

溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!

本類教程下載

系統(tǒng)下載排行

主站蜘蛛池模板: 国产一区二区日韩欧美在线 | 国产在线综合视频 | 经典欧美gifxxoo动态图暗网 | 国模大尺度福利视频在线 | 欧美 在线播放 | 亚洲精品久久久久综合中文字幕 | 手机看片日韩国产一区二区 | 日韩在线观看视频免费 | zzzzzz在线日本免费视频 | 女人18毛片a | 久久精品国产亚洲片 | 天天躁夜夜躁很很躁2020 | 久久精品国产免费 | 婷婷草| 老鸭窝毛片一区二区三区 | 天天舔天天爽 | 欧美日韩在线播放一区二区三区 | 青青操综合 | 青青草在线免费 | 99久久综合狠狠综合久久男同 | 天天操操操操操操 | 日日夜干| 高清不卡视频 | 五月婷婷激情综合网 | 人人看人人玩 | 最近最新中文字幕在线第一页 | 狠狠色狠狠色综合日日五 | 国产在线调教两警花在线视频 | 久久这里只有精品8 | 日日夜夜天天久久 | 婷婷综合 | 大乳喷奶水榨乳在线日本 | 成人午夜做爰视频免费看 | 日韩影视在线 | 日本不卡在线观看 | 色综合久久久高清综合久久久 | 国产美女精品久久久久中文 | 四虎国产欧美成人影院 | 天天色天 | 久在线播放| 欧美日日射 |