2010-06-14 61 views

回答

2

我发现了一篇博文Mike Snow,它描述了一种方法。该代码是有点长完全引用,但这里的相关章节:

StringReader stream = new StringReader(e.Result); 
XmlReader reader = XmlReader.Create(stream); 

while (reader.Read()) 
{ 
    // Do stuff 
} 

XML文件,则使用此代码下载:

Uri url = new Uri("MapImages.xml", UriKind.Relative); 
WebClient client = new WebClient(); 
client.DownloadStringCompleted += 
     new DownloadStringCompletedEventHandler(client_DownloadStringCompleted); 
client.DownloadStringAsync(url); 

DownloadStringAsync MSDN页:

下载资源后,此方法使用Encoding属性中指定的编码将资源转换为String。此方法在下载资源时不会阻塞调用线程。要在等待服务器响应的同时下载资源和块,请使用DownloadString方法。下载完成后,将引发DownloadStringCompleted事件。您的申请必须处理此事件以接收通知。下载的字符串在Result属性中可用。

因此,下载文件到您的Internet临时文件夹(或缓存依赖于浏览器),然后将该文件传递作为字符串到事件处理程序,在那里你可以使用StringReader阅读。

+0

Uri和WebClient不会到网站并将XML文件下载到用户的机器吗? – cbleile 2010-06-14 16:16:21

+0

@cbeile - 是的,但仅作为临时文件 – ChrisF 2010-06-14 17:13:15

1

如果你想阅读你的项目文件的XML你这样做:

XDocument doc1 = XDocument.Load("file.xml"); 
     var filteredData = from c in doc1.Descendants("Row") 
          select new 
          { 
           //element assignment like: 
           Name = c.Element("Name"); 
          }; 

查询返回IEnumereble对象...

编辑:问题是旧的,但一个反应总是有用给其他人

相关问题