日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
C#編程實(shí)現(xiàn)顯示XML文件

C#語(yǔ)言編程有很多值得學(xué)習(xí)的地方,這里我們主要介紹C#編程實(shí)現(xiàn)顯示XML文件,包括介紹在Web Form中分別增加相應(yīng)的四個(gè)Label等方面。

C#編程實(shí)現(xiàn)顯示XML文件

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

XML正快速成為從中間層傳送數(shù)據(jù)到桌面的工具,由于XML的數(shù)據(jù)可以通過(guò)中間層代理與多種后端(數(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。

C#編程實(shí)現(xiàn)顯示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)代碼如下:

 
 
 
  1. using System.Xml;
  2. //處理XML必須加的Namespace,還需在References中加System.XML.Dll
  3. using System.IO;
  4. //讀XML文件必須加的Namespace
  5. 然后在Page_Load中加入如下代碼:
  6. protected void Page_Load(object sender, EventArgs e){
  7. string datafile="guest.xml" ;
  8. //假設(shè)XML文件名為guest.xml
  9. StreamReader tyj=new StreamReader(Server.MapPath(datafile));
  10. XmlDataDocument datadoc = new XmlDataDocument();
  11. //創(chuàng)建該對(duì)象為了讀取XML
  12. datadoc.DataSet.ReadXml(tyj);
  13. //讀取guest.xml文件內(nèi)容
  14. DataGrid1.DataSource = datadoc.DataSet.Tables[0].DefaultView;
  15. //設(shè)置DataGrid數(shù)據(jù)源
  16. DataGrid1.DataBind();
  17. //綁定
  18. datadoc=null ;
  19. //釋放資源
  20. tyj.Close();}
  21. //釋放StreamReader類,這非常重要,否則下次打開會(huì)顯示文件已經(jīng)被使用
  22. 對(duì)應(yīng)于顯示用的Web Form中DataGrid的功能,我們需要增加下面的函數(shù):
  23. protected void OnSelectName(object sender,EventArgs e) {
  24. Session["select_name"]=(string)DataGrid1.SelectedItem.Cells[1].Text.ToString();
  25. //把選定的 DataGrid某行中的一個(gè)單元中的值(Name)存入一個(gè)會(huì)話變量中,以便下一頁(yè)用
  26. Response.Redirect("xml_manage.aspx");}
  27. //轉(zhuǎn)到有增加刪除功能的管理頁(yè)
  28. Web Form加入以下代碼:
  29. <asp:DataGrid id=DataGrid1 runat="server" onselectedindexchanged="OnSelectName" >
  30. <property name="Columns">
  31. <asp:buttoncolumn Text="選擇" commandname="Select" />
  32. </property>

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

增加X(jué)ML文件內(nèi)容

在Web Form中分別增加相應(yīng)的四個(gè)Label(姓名,來(lái)自哪里,Email地址,留言內(nèi)容)和四個(gè)TextBox和一個(gè)用于提交的Button,并為這button增加如下代碼:

 
 
 
  1. string datafile = "guest.xml" ;XmlDocument xmldocument = new XmlDocument() ;
  2. xmldocument.Load(Server.MapPath(datafile)) ;
  3. //把guest.xml讀到xmldocument中
  4. DocumentNavigator navigator = new DocumentNavigator(xmldocument) ;
  5. //最重要的類
  6. navigator.MoveToDocumentElement() ;
  7. navigator.Insert(System.Xml.TreePosition.FirstChild, 
    XmlNodeType.Element, "Guest","","") ;//插入節(jié)點(diǎn)Guest
  8.     navigator.Insert(System.Xml.TreePosition.FirstChild, 
    XmlNodeType.Element, "Name","","") ;
  9. navigator.Insert(System.Xml.TreePosition.FirstChild, 
    XmlNodeType.Text,"Name","","") ;
  10. navigator.Value=Name.Text ;
  11. //為該節(jié)點(diǎn)賦值
  12. navigator.MoveToParent() ;
  13. //返回父節(jié)點(diǎn) Guest
  14. ……
  15. //使用同類語(yǔ)句,在元素Name下插入另一些元素如Country、E-mail地址和留言等
  16. xmldocument.Save(Server.MapPath(datafile));
  17. //最后保存這個(gè)XML文檔
  18. navigator=null ;
  19. xmldocument=null ;
  20. //釋放XML文檔,這樣其他程序可以用它
  21. 上述代碼使用DocumentNavigator類增加元素和內(nèi)容,注意使用后要釋放資源。
  22. 刪除XML文件內(nèi)容
  23. 刪除選定記錄,對(duì)于你上面選擇的節(jié)點(diǎn),下面代碼可查找到該節(jié)點(diǎn)并清除選中的信息:
  24. string datafile = "guest.xml" ;
  25. XmlDocument xmldocument = new XmlDocument() ;
  26. xmldocument.Load(Server.MapPath(datafile)) ;
  27. //把guest.xml讀到xmldocument中
  28. DocumentNavigator navigator = new DocumentNavigator(xmldocument) ;
  29. navigator.MoveToDocumentElement() ;
  30. navigator.Select("/Guests/Guest[Name=""+Session["select_name"]+""]");
  31. //參數(shù)是XPath
  32. navigator.RemoveSelected();
  33. //執(zhí)行刪除
  34. xmldocument.Save(Server.MapPath(datafile));
  35. //最后保存這個(gè)XML文檔
  36. navigator=null;
  37. //釋放類
  38. xmldocument=null ;
  39. //釋放XML文檔,這樣其他程序可以用它

C#編程實(shí)現(xiàn)顯示XML文件結(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交互訪問(wèn)。


當(dāng)前標(biāo)題:C#編程實(shí)現(xiàn)顯示XML文件
URL鏈接:http://www.dlmjj.cn/article/dppocog.html