ASP.NET中讀取XML文件4種方法

參考文章:http://www.cnblogs.com/maoyu417/archive/2007/11/02/946901.html

一共有四種方法,創建一個asp.net項目,下面有四個頁面,如下圖所示:

data7.xml內容如下所示:

[c-sharp] view plaincopy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <Advertisements>  
  3.   <Ad>  
  4.     <ImageUrl>001.jpg</ImageUrl>  
  5.     <NavigateUrl>001.aspx</NavigateUrl>  
  6.     <Impressions>10</Impressions>  
  7.     <Keyword>gucas01</Keyword>  
  8.   </Ad>  
  9.   <Ad>  
  10.     <ImageUrl>002.jpg</ImageUrl>  
  11.     <NavigateUrl>002.aspx</NavigateUrl>  
  12.     <Impressions>20</Impressions>  
  13.     <Keyword>gucas02</Keyword>  
  14.   </Ad>  
  15.   <Ad>  
  16.     <ImageUrl>003.jpg</ImageUrl>  
  17.     <NavigateUrl>003.aspx</NavigateUrl>  
  18.     <Impressions>30</Impressions>  
  19.     <Keyword>gucas03</Keyword>  
  20.   </Ad>  
  21.   <Ad>  
  22.     <ImageUrl>004.jpg</ImageUrl>  
  23.     <NavigateUrl>004.aspx</NavigateUrl>  
  24.     <Impressions>40</Impressions>  
  25.     <Keyword>gucas04</Keyword>  
  26.   </Ad>  
  27.   <Ad>  
  28.     <ImageUrl>005.jpg</ImageUrl>  
  29.     <NavigateUrl>005.aspx</NavigateUrl>  
  30.     <Impressions>50</Impressions>  
  31.     <Keyword>gucas05</Keyword>  
  32.   </Ad>  
  33.   <Ad>  
  34.     <ImageUrl>google.gif</ImageUrl>  
  35.     <NavigateUrl>http://www.google.com</NavigateUrl>  
  36.     <Impressions>30</Impressions>  
  37.     <Keyword>google</Keyword>  
  38.   </Ad>  
  39. </Advertisements>  

方法1:使用XML控件

Default.aspx代碼如下:

[c-sharp] view plaincopy
  1. <%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>  
  2.   
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  4.   
  5. <html xmlns="http://www.w3.org/1999/xhtml">  
  6. <head runat="server">  
  7.     <title></title>  
  8. </head>  
  9. <body>  
  10. <h3><font face="Verdana">讀取XML方法一:使用XML控件</font></h3>  
  11.     <form id="form1" runat="server">  
  12.     <div>  
  13.      <asp:Xml id="xml1" DocumentSource="data7.xml" runat="server" />  
  14.     </div>  
  15.     </form>  
  16. </body>  
  17. </html>  

Default.aspx.cs不做修改。

發佈結果如下圖所示:

方法二: 使用DOM技術

Default.aspx

[c-sharp] view plaincopy
  1. <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>  
  2.   
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  4.   
  5. <html xmlns="http://www.w3.org/1999/xhtml">  
  6. <head runat="server">  
  7.     <title></title>  
  8. </head>  
  9. <body>  
  10. <h3><font face="Verdana">讀取XML方法二:使用DOM技術</font></h3>  
  11.     <form id="form1" runat="server">  
  12.     <div>  
  13.     <asp:Xml id="xml1"  runat="server" />  
  14.     </div>  
  15.     </form>  
  16. </body>  
  17. </html>  

Default.aspx.cs

[c-sharp] view plaincopy
  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Linq;  
  4. using System.Web;  
  5. using System.Web.UI;  
  6. using System.Web.UI.WebControls;  
  7. using System.Xml;  
  8.   
  9. public partial class Default2 : System.Web.UI.Page  
  10. {  
  11.     protected void Page_Load(object sender, EventArgs e)  
  12.     {  
  13.         XmlDocument doc = new XmlDocument();  
  14.         doc.Load(Server.MapPath("data7.xml"));  
  15.         xml1.Document = doc;  
  16.     }  
  17. }  

發佈結果如下所示:

方法三 :使用DataSet對象

Default.aspx

[c-sharp] view plaincopy
  1. <body>  
  2.  <h3><font face="Verdana">讀取XML方法三:使用DataSet對象</font></h3>  
  3.     <form id="form1" runat="server">  
  4.     <div>  
  5.     <asp:DataGrid id="dgEmployees" runat="server" />  
  6.   
  7.     </div>  
  8.     </form>  
  9. </body>  

Default.aspx.cs

[c-sharp] view plaincopy
  1. public partial class Default3 : System.Web.UI.Page  
  2. {  
  3.     protected void Page_Load(object sender, EventArgs e)  
  4.     {      
  5.         DataSet objDataSet = new DataSet();  
  6.         objDataSet.ReadXml(Server.MapPath("data7.xml"));  
  7.   
  8.         //方法1  
  9.         //dgEmployees.DataSource = objDataSet;  
  10.         //dgEmployees.DataBind();  
  11.   
  12.         //方法2  
  13.         dgEmployees.DataSource = objDataSet.Tables["Ad"].DefaultView;  
  14.         dgEmployees.DataBind();  
  15.     }  
  16. }  

發佈結果如下所示:

方法四 :按文本方式讀取

Default.aspx

[c-sharp] view plaincopy
  1. <body>  
  2.    <h3><font face="Verdana">讀取XML方法四:按文本方式讀取</font></h3>  
  3.     <form id="form1" runat="server">  
  4.     <div>  
  5.     <asp:label id="LblFile"  runat="server" />  
  6.     </div>  
  7.     </form>  
  8. </body>  

Default.aspx.cs

[c-sharp] view plaincopy
  1. public partial class Default4 : System.Web.UI.Page  
  2. {  
  3.     protected void Page_Load(object sender, EventArgs e)  
  4.     {  
  5.         XmlTextReader objXMLReader = new XmlTextReader(Server.MapPath("web.config"));  
  6.         string strNodeResult = "";  
  7.         XmlNodeType objNodeType;  
  8.         while (objXMLReader.Read())  
  9.         {  
  10.             objNodeType = objXMLReader.NodeType;  
  11.             switch (objNodeType)  
  12.             {  
  13.                 case XmlNodeType.XmlDeclaration:  
  14.                     //讀取XML文件頭  
  15.                     strNodeResult += "XML Declaration:<b>" + objXMLReader.Name + "" + objXMLReader.Value + "</b><br/>";  
  16.                     break;  
  17.                 case XmlNodeType.Element:  
  18.                     //讀取標籤  
  19.                     strNodeResult += "Element:<b>" + objXMLReader.Name + "</b><br/>";  
  20.                     break;  
  21.                 case XmlNodeType.Text:  
  22.                     //讀取值  
  23.                     strNodeResult += " -Value:<b>" + objXMLReader.Value + "</b><br/>";  
  24.                     break;  
  25.   
  26.             }  
  27.             if (objXMLReader.HasAttributes)  
  28.             {  //用循環判斷完所有節點  
  29.                 while (objXMLReader.MoveToNextAttribute())  
  30.                 { //取標籤和值  
  31.                     strNodeResult += " -Attribute:<b>" + objXMLReader.Name + "</b> value:<b>" + objXMLReader.Value + "</b><br/>";  
  32.                 }  
  33.             }  
  34.             LblFile.Text = strNodeResult;  
  35.         }  
  36.     }  
  37. }  

發佈結果如下所示:

發佈了28 篇原創文章 · 獲贊 2 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章