ASP.NET中读取XML文件4种方法

简介:

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

一共有四种方法,创建一个asp.net项目,下面有四个页面,如下图所示:

data7.xml内容如下所示:

[c-sharp]  view plain copy print ?
  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 plain copy print ?
  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 plain copy print ?
  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 plain copy print ?
  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 plain copy print ?
  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 plain copy print ?
  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 plain copy print ?
  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 plain copy print ?
  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. }  

发布结果如下所示:




本文转自xwdreamer博客园博客,原文链接:http://www.cnblogs.com/xwdreamer/archive/2011/04/27/2297022.html,如需转载请自行联系原作者


目录
相关文章
|
14天前
|
XML Java 数据库连接
mybatis中在xml文件中通用查询结果列如何使用
mybatis中在xml文件中通用查询结果列如何使用
14 0
|
16天前
|
XML JavaScript 前端开发
xml文件使用及解析
xml文件使用及解析
|
16天前
|
C# Windows
.NET开源免费的Windows快速文件搜索和应用程序启动器
今天大姚给大家分享一款.NET开源(MIT License)、免费、功能强大的Windows快速文件搜索和应用程序启动器:Flow Launcher。
|
1月前
|
XML C# 数据格式
使用C#操作XML文件
使用C#操作XML文件
11 0
|
1月前
|
Java
java实现遍历树形菜单方法——映射文件VoteTree.hbm.xml
java实现遍历树形菜单方法——映射文件VoteTree.hbm.xml
9 0
|
1月前
|
Kubernetes Cloud Native Java
Activiti 简介以及最新activiti依赖 pom.xml文件(使用时注意对应版本号)
Activiti 简介以及最新activiti依赖 pom.xml文件(使用时注意对应版本号)
39 1
|
1月前
|
XML Java 数据库连接
struts+hibernate+oracle+easyui实现lazyout组件的简单案例——hibernate的config文件(hibernate.cfg.xml)
struts+hibernate+oracle+easyui实现lazyout组件的简单案例——hibernate的config文件(hibernate.cfg.xml)
11 0
|
2月前
|
XML JavaScript 数据格式
打开 XML 文件报错 There is no Unicode byte order mark
打开 XML 文件报错 There is no Unicode byte order mark
43 0
|
2月前
|
XML 存储 数据格式
什么是 XML 文件的 Schema
什么是 XML 文件的 Schema
30 0
|
2天前
|
XML 数据格式
小米备份descript.xml文件
小米备份descript.xml文件
11 0