亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > XML > 正文

Visual C#的Web XML編程

2024-09-05 20:55:47
字體:
來源:轉載
供稿:網友
由于xml的易共享性等眾多優點,xml技術越來越多地被應用于企業數據處理等領域,如應用于企業報表、新聞發布、會計數據處理等等。

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

microsoft的.net圍繞xml這一核心提供了一個強大而快速的開發工具——c#,它具有前所未有的高開發效率,特別是在xml編程方面。

c#提供了許多相關類處理xml數據,如處理stream的類: xmlreader和xmlwriter; dom的類:xmlnode、xmldocument和xmlelement等; xpath的類:xmlnavigator;xslt的類:xsltransform。

顯示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>

代碼的作用是當按了“選擇”按鈕后,執行onselectname()中的程序,把選定的 datagrid中某行中的一個單元中的值(name)存入一個會話變量中,然后轉到下一頁。

增加xml文件內容
在web form中增加相應的幾個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文檔,這樣其他程序可以用它

如需將xml文件中所有信息清除,使用“navigator.removechildren();”語句即可實現。

結 論
綜上可知,c#編寫xml應用程序不但快捷而且方便,在編寫asp.net數據庫應用程序時,用xml文件替代一些小的table,能減少許多數據庫存取連接,也能讓其他網絡程序更易使用這些數據。

目前xml的主要瓶頸在于文件系統的讀出或寫入,故應使用更多內存和緩存方式,如果信息量不是巨大無比且修改量也較小,而瀏覽量巨大的話,使用xml方法將是很好的選擇;相反,如數據量巨大,應考慮使用支持xml的數據庫,無論你使用ado+連接其他數據庫,還是使用sql server,c#中都有直接的類函數可讓這些數據庫中的信息直接和xml交互訪問。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
色偷偷噜噜噜亚洲男人| 日韩激情av在线免费观看| 亚洲女人天堂成人av在线| 高清欧美性猛交xxxx黑人猛交| 亚洲精品456在线播放狼人| 91精品视频在线播放| 福利二区91精品bt7086| 成人av电影天堂| 麻豆国产va免费精品高清在线| 亚洲成人三级在线| 国产精品美女www爽爽爽视频| 日韩精品在线免费观看| 日韩不卡中文字幕| 国产精品白丝jk喷水视频一区| 九九精品在线观看| 国产日产欧美精品| 日本高清+成人网在线观看| 久久资源免费视频| 欧美日韩激情视频8区| 一本色道久久88综合日韩精品| 亚洲成年人影院在线| 亚洲高清在线观看| 国产精品久久久久77777| 欧美二区乱c黑人| 日韩欧美国产高清91| 国产日韩欧美综合| 国产偷亚洲偷欧美偷精品| 国产精品入口免费视频一| 精品久久久久久久中文字幕| 国产一区二区三区直播精品电影| 色婷婷综合久久久久中文字幕1| 日产日韩在线亚洲欧美| 91精品在线一区| 国产精品精品视频一区二区三区| 欧美区二区三区| 狠狠躁夜夜躁人人爽天天天天97| 18性欧美xxxⅹ性满足| 欧美日韩免费一区| 精品久久久久久久中文字幕| 色婷婷综合久久久久| 欧美激情一区二区三级高清视频| 欧美极品欧美精品欧美视频| 亚洲欧美日韩一区二区在线| 久久久久久久久久久久久久久久久久av| 一本大道香蕉久在线播放29| 欧美午夜丰满在线18影院| 久久久精品一区二区三区| 亚洲社区在线观看| 亚洲老司机av| 97超视频免费观看| 91在线观看免费高清| 疯狂做受xxxx欧美肥白少妇| 成人性生交大片免费观看嘿嘿视频| 亚洲欧美国产视频| 97精品视频在线观看| 亚洲欧洲偷拍精品| 欧美日韩免费一区| 韩国日本不卡在线| 亚洲免费伊人电影在线观看av| 日韩精品一区二区三区第95| 奇米一区二区三区四区久久| 欧美精品一区二区免费| xxx一区二区| 欧洲永久精品大片ww免费漫画| 久久精品人人做人人爽| 91国内产香蕉| 色综合久久中文字幕综合网小说| 欧美性高潮床叫视频| 色午夜这里只有精品| 青草青草久热精品视频在线网站| 亚洲图片在区色| 91精品国产高清自在线看超| 91精品久久久久久久久久另类| xvideos成人免费中文版| 精品欧美一区二区三区| 最新亚洲国产精品| 性金发美女69hd大尺寸| 亚洲精品自拍视频| 91亚洲国产成人精品性色| 日韩精品在线免费| 久久精品99久久香蕉国产色戒| 日韩成人免费视频| 欧美亚洲激情在线| 久热99视频在线观看| 国产精品久久久av| 亚洲视频网站在线观看| 国产精品69精品一区二区三区| 欧美肥老妇视频| 欧美精品久久一区二区| 亚洲桃花岛网站| 亚洲国产欧美一区二区三区同亚洲| 亚洲美女在线视频| 亚洲性xxxx| 亚洲色图狂野欧美| 精品亚洲一区二区三区在线观看| 一区二区欧美亚洲| 欧美性在线视频| 久久久之久亚州精品露出| 亚洲精品欧美日韩| 成人福利网站在线观看| 欧美日韩在线一区| 中文字幕亚洲欧美日韩在线不卡| 中国日韩欧美久久久久久久久| 欧美日韩国产在线看| 亚洲福利小视频| 人人澡人人澡人人看欧美| 精品久久久久久久久久久久久久| 国产精品偷伦视频免费观看国产| 日韩精品免费电影| 色香阁99久久精品久久久| 午夜精品久久17c| 青青草精品毛片| 国产伊人精品在线| 国产玖玖精品视频| 欧美性猛交xxxx乱大交极品| 最新国产精品亚洲| 一区二区欧美激情| xvideos国产精品| 97精品久久久| 欧美高清理论片| xvideos亚洲| 国产精品久久久亚洲| 韩国精品美女www爽爽爽视频| 97在线精品国自产拍中文| 色在人av网站天堂精品| 91亚洲国产成人精品性色| 国产精品女主播| 亚洲第一区在线| 成人乱人伦精品视频在线观看| 亚洲欧美日韩久久久久久| 亚洲欧美激情在线视频| 青青青国产精品一区二区| 国产精品麻豆va在线播放| 日韩av影片在线观看| 国产不卡一区二区在线播放| 久久99久久久久久久噜噜| 欧美极品美女电影一区| 国产成人高潮免费观看精品| 亚洲www永久成人夜色| 欧美午夜精品久久久久久人妖| 久久久999精品视频| 亲爱的老师9免费观看全集电视剧| 日韩中文字幕视频在线| 精品在线欧美视频| 欧美精品videosex极品1| 国产欧美亚洲视频| 中文字幕日韩欧美在线视频| 亚洲免费av电影| 一区二区三欧美| 91九色国产在线| 色香阁99久久精品久久久| 日本午夜人人精品| 91成人在线播放| 久久国产色av| 国产日韩在线视频| 亚洲欧洲日韩国产| 欧美疯狂性受xxxxx另类| 亚洲欧美视频在线| 亚洲最新视频在线| 8x海外华人永久免费日韩内陆视频| 国产精品久久不能| 一本色道久久88精品综合| 日韩av色在线| 久久99精品久久久久久琪琪|