利用C#读取Web上的XML数据的两种方法

开发
本文将介绍如何利用C#读取Web上的XML数据的两种方法,一是用LINQ读取,二是用XmlReader构造函数。希望本文对大家有所帮助。

一、使用LINQ读取XML数据

使用Xdocument上的Load方法,可以快速的加载一个XML文档,然后使用LINQ对加载XML文档进行查询或其他操作,这里仅简单偏历。所以,一旦查询一组元素有返回元素集,就可以使用一个简单的foreach循环访问每一个元素。核心代码如下:

  1. /// <summary> 
  2.     /// 使用LINQ读取web上的XML数据  
  3.     /// </summary> 
  4.     public static void UseLINQ()  
  5.     {  
  6.         string sURL = "http://localhost:9058/GameServerInfo/XMLFile.xml";  
  7.         XDocument oXDoc = XDocument.Load(sURL);  
  8.         var qurey = from e in oXDoc.Descendants()  
  9.                     where e.NodeType == XmlNodeType.Element  
  10.                     select new  
  11.                     {  
  12.                         ElementName=e.Name.ToString(),  
  13.                         ElementValue=e.Value  
  14.                     };  
  15.         foreach(var elementInfo in qurey)  
  16.         {  
  17.             HttpContext.Current.Response.Write(string.Format("ElementName->{0} ElementValue->{1}<br />", elementInfo.ElementName, elementInfo.ElementValue));  
  18.         }  
  19.     } 

二、使用XmlReader构造函数

当然还可以通过使用带有URL的XmlReader.Create方法来完成操作,它使用的是一个XmlUrlResolver类的一个实例检测传入的URL,然后打开一个通向由该URL代表的XML文档流。为了指定阅读器上的设置,可以使用另一个Create的重载,它也通过一个XmlReaderSetting实例完成这一目的。代码如下:

  1. /// <summary> 
  2.     /// 使用XmlReader构造函数  
  3.     /// </summary> 
  4.     public static void UseXmlReader()  
  5.     {  
  6.         string sURL = "http://localhost:9058/GameServerInfo/XMLFile.xml";  
  7.         using(XmlReader read=XmlReader.Create(sURL))  
  8.         {  
  9.             while(read.Read())  
  10.             {  
  11.                 switch (read.NodeType)  
  12.                 {  
  13.                     case XmlNodeType.Element:  
  14.                         HttpContext.Current.Response.Write(string.Format("ElementName->{0} <br />", read.Name));  
  15.                         break;  
  16.                     case XmlNodeType.Text:  
  17.                         HttpContext.Current.Response.Write(string.Format("ElementValue->{0}<br />", read.Value));  
  18.                         break;  
  19.                     case XmlNodeType.CDATA:  
  20.                         HttpContext.Current.Response.Write(string.Format("ElementValue->{0}<br />", read.Value));  
  21.                         break;  
  22.                         //other  
  23.                 }  
  24.             }  
  25.         }  
  26.     } 

三、XML数据实例代码下载

代码下载:http://files.cnblogs.com/tjdxlmy/XMLCode.rar

【编辑推荐】

  1. XML数据库发展路在何方?
  2. ASP.NET中XML数据的处理
  3. 全局XML Web服务体系结构新标准
  4. XML结构与语法入门详解
  5. 基于关系型数据库引擎的"XML"索引技术
责任编辑:彭凡 来源: cnblogs
相关推荐

2009-08-05 13:34:18

C#日期相减

2009-09-02 16:21:02

C#解析Html

2009-08-25 11:35:27

C#连接数据库

2009-08-21 18:02:41

C#快捷键

2009-08-17 08:29:00

c#删除指定文件

2009-08-17 17:48:00

C#自定义鼠标样式

2010-08-02 16:58:08

Flex配置文件

2011-05-24 09:18:59

C++连接mysql数据库

2013-02-22 09:54:15

C#Excel读取Excel

2011-04-25 09:53:31

C++mysql

2010-08-06 09:38:11

Flex读取XML

2010-08-04 17:41:52

挂载NFS

2024-01-02 11:45:00

读取requestmap

2011-03-30 17:04:24

MySQL添加用户

2010-11-24 14:36:25

修复mysql表

2009-09-25 14:04:09

Hibernate eHibernate h

2010-04-13 09:50:44

Oracle跟踪

2009-08-05 15:54:49

Web Service

2010-07-01 12:29:27

SQL Server重

2009-08-18 13:22:55

C#动态调用Web服务
点赞
收藏

51CTO技术栈公众号