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


目录
相关文章
|
API 网络安全 数据安全/隐私保护
.NET邮箱API发送邮件的方法有哪些
本文介绍了.NET开发中使用邮箱API发送邮件的方法,包括SmtpClient类发送邮件、MailMessage类创建邮件消息、设置SmtpClient属性、同步/异步发送、错误处理、发送HTML格式邮件、带附件邮件以及多人邮件。AokSend提供高触达发信服务,适用于大规模验证码发送场景。了解这些技巧有助于开发者实现高效、可靠的邮件功能。
|
开发框架 .NET
ASP.NET Core NET7 增加session的方法
ASP.NET Core NET7 增加session的方法
198 0
|
6月前
|
API C++ Windows
Visual C++运行库、.NET Framework和DirectX运行库的作用及常见问题解决方案,涵盖MSVCP140.dll丢失、0xc000007b错误等典型故障的修复方法
本文介绍Visual C++运行库、.NET Framework和DirectX运行库的作用及常见问题解决方案,涵盖MSVCP140.dll丢失、0xc000007b错误等典型故障的修复方法,提供官方下载链接与系统修复工具使用指南。
1514 2
|
SQL 缓存 开发框架
分享一个 .NET EF6 应用二级缓存提高性能的方法
分享一个 .NET EF6 应用二级缓存提高性能的方法
234 0
|
Windows
​史上最详细的Windows10系统离线安装.NET Framework 3.5的方法(附离线安装包下载)
​史上最详细的Windows10系统离线安装.NET Framework 3.5的方法(附离线安装包下载)
10370 9
|
算法 API 数据安全/隐私保护
.NET使用原生方法实现文件压缩和解压
.NET使用原生方法实现文件压缩和解压
206 0
.NET使用原生方法实现文件压缩和解压
|
程序员 数据库
分享 2 个 .NET EF 6 只更新某些字段的方法
分享 2 个 .NET EF 6 只更新某些字段的方法
403 0
|
数据库
分享一个 .NET EF 6 扩展 Where 的方法
分享一个 .NET EF 6 扩展 Where 的方法
212 0
|
开发框架 前端开发 算法
分享 .NET EF6 查询并返回树形结构数据的 2 个思路和具体实现方法
分享 .NET EF6 查询并返回树形结构数据的 2 个思路和具体实现方法
277 0
|
开发框架 中间件 .NET
分享 ASP.NET Core Web Api 中间件获取 Request Body 两个方法
分享 ASP.NET Core Web Api 中间件获取 Request Body 两个方法
880 0