博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#之读取web上的xml
阅读量:6077 次
发布时间:2019-06-20

本文共 1587 字,大约阅读时间需要 5 分钟。

一、使用LINQ读取
使用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));
        }
    }
二、使用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
                }
            }
        }
    }
三、实例代码下载
代码下载:

转载于:https://www.cnblogs.com/tjdxlmy/archive/2009/08/01/1536574.html

你可能感兴趣的文章
eyoucms compare比较标签
查看>>
MPLS ×××概述
查看>>
jQuery+PHP+Mysql在线拍照和在线浏览照片
查看>>
nginx热部署升级
查看>>
使用JRockit 能否加速Myeclipse
查看>>
职场老司机才知道的Excel技巧,一般人不知道哦!
查看>>
Spring3与hibernate4注解式声明事务管理
查看>>
【linux下c语言服务器开发系列1】多进程处理多客户端的连接
查看>>
线性表的顺序存储结构
查看>>
初识centos7与centos6的区别
查看>>
批量部署管理服务器的成熟方案Puppet,Func,cfengine汇总贴
查看>>
spring aop 嵌套调用的问题 (同一方法内调用切面切不到)
查看>>
CentOS6 安装Redis
查看>>
Linux手动导入导出Mysql数据库
查看>>
是不是只有在我有钱的时候你才会爱我
查看>>
wuzhicms查找:当前页面使用的哪个文件
查看>>
oracle FIND_IN_SET函数
查看>>
IOS 单例方法的建立
查看>>
Ubuntu下搭建Apache+MySQL+PHP开发环境
查看>>
使用U盘安装Kali的曲折经历
查看>>