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,如需转载请自行联系原作者


目录
相关文章
|
25天前
|
API C++ Windows
Visual C++运行库、.NET Framework和DirectX运行库的作用及常见问题解决方案,涵盖MSVCP140.dll丢失、0xc000007b错误等典型故障的修复方法
本文介绍Visual C++运行库、.NET Framework和DirectX运行库的作用及常见问题解决方案,涵盖MSVCP140.dll丢失、0xc000007b错误等典型故障的修复方法,提供官方下载链接与系统修复工具使用指南。
405 2
|
4月前
|
C++ Windows
.NET Framework安装不成功,下载`NET Framework 3.5`文件,Microsoft Visual C++
.NET Framework常见问题及解决方案汇总,涵盖缺失组件、安装失败、错误代码等,提供多种修复方法,包括全能王DLL修复工具、微软官方运行库及命令行安装等,适用于Windows系统,解决应用程序无法运行问题。
313 3
|
5月前
|
存储 缓存
.NET 6中Startup.cs文件注入本地缓存策略与服务生命周期管理实践:AddTransient, AddScoped, AddSingleton。
记住,选择正确的服务生命周期并妥善管理它们是至关重要的,因为它们直接影响你的应用程序的性能和行为。就像一个成功的建筑工地,工具箱如果整理得当,工具选择和使用得当,工地的整体效率将会大大提高。
207 0
|
SQL 缓存 开发框架
分享一个 .NET EF6 应用二级缓存提高性能的方法
分享一个 .NET EF6 应用二级缓存提高性能的方法
156 0
|
11月前
|
Linux C# Windows
.NET使用MiniWord高效生成Word文件
.NET使用MiniWord高效生成Word文件
324 12
|
12月前
Visual Studio 快速分析 .NET Dump 文件
【11月更文挑战第10天】.NET Dump 文件是在 .NET 应用程序崩溃或出现问题时生成的,记录了应用程序的状态,包括内存对象、线程栈和模块信息。通过分析这些文件,开发人员可以定位和解决内存泄漏、死锁等问题。在 Visual Studio 中,可以通过调试工具、内存分析工具和符号加载等功能来详细分析 Dump 文件。此外,还可以使用第三方工具如 WinDbg 进行更深入的分析。
642 1
|
存储 开发框架 .NET
Windows IIS中asp的global.asa全局配置文件使用说明
Windows IIS中asp的global.asa全局配置文件使用说明
251 1
.NET 压缩/解压文件
【9月更文挑战第5天】在 .NET 中,可利用 `System.IO.Compression` 命名空间进行文件的压缩与解压。首先引入相关命名空间,然后通过 GZipStream 类实现具体的压缩或解压功能。下面提供了压缩与解压文件的方法示例及调用方式,便于用户快速上手操作。
169 6
|
C# Windows
一款基于.NET开发的简易高效的文件转换器
一款基于.NET开发的简易高效的文件转换器
120 0
|
Java Windows 容器
【应用服务 App Service】快速获取DUMP文件(App Service for Windows(.NET/.NET Core))
【应用服务 App Service】快速获取DUMP文件(App Service for Windows(.NET/.NET Core))
231 4