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

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

一、使用LINQ读取XML数据

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

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

二、使用XmlReader构造函数

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

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

挂载NFS

2010-08-06 09:38:11

Flex读取XML

2024-01-02 11:45:00

读取requestmap

2009-09-25 14:04:09

Hibernate eHibernate h

2011-03-30 17:04:24

MySQL添加用户

2010-11-24 14:36:25

修复mysql表

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技术栈公众号