2008-09-15 16 views
2

有谁知道一种简单的方法将原始的XML RSS源导入到C#中吗?我正在寻找一种简单的方法将XML作为一个字符串,所以我可以用正则表达式解析它。如何在C#中导入原始RSS源?

感谢, -Greg

回答

0

的XmlDocument(位于的System.Xml,你将需要添加引用的DLL,如果它不是为你加)是你会用什么获取XML转换C#。在这一点上,只需调用InnerXml属性,该属性以字符串格式给出内部Xml,然后使用正则表达式进行解析。

11

你现在得到了内置的联合供稿(RSS和ATOM)的支持。看看这MSDN Magazine Article for a good introduction

如果你真的想用正则表达式解析字符串(并且解析XML不是正则表达式的意图),获取内容的最简单方法是使用WebClient类。它有一个简单的下载字符串使用。只需提供您的Feed的网址即可。检查这个link for an example of how to use it

+0

Interseting文章。我需要开始研究WCF和Syndication API。 – 2008-09-15 23:53:15

0

获取RSS提要作为请求字符串的最好方法是使用System.Net.HttpWebRequest类。一旦你设置了HttpWebRequest的参数(URL等),就调用HttpWebRequest.GetResponse()方法。从那里,你可以通过WebResponse.GetResponseStream()获得Stream。然后,可以将该流封装到System.IO.StreamReader中,并调用StreamReader.ReadToEnd()。瞧。

13

这应该足以让你去...

using System.Net 

WebClient wc = new WebClient(); 

Stream st = wc.OpenRead(“http://example.com/feed.rss”); 

using (StreamReader sr = new StreamReader(st)) { 
    string rss = sr.ReadToEnd(); 
} 
+6

或者只是调用wc.DownloadString(“feed url”); – 2008-09-15 23:46:43

2

我会进加载到一个XmlDocument和使用代替正则表达式XPATH,就像这样:

XmlDocument doc = new XmlDocument(); 

HttpWebRequest request = WebRequest.Create(feedUrl) as HttpWebRequest; 

using (HttpWebResponse response = request.GetResponse() as HttpWebResponse) 
{ 
    StreamReader reader = new StreamReader(response.GetResponseStream()); 
    doc.Load(reader); 

    <parse with XPATH> 
} 
0

RSS只是xml,可以轻松地流式传输到磁盘。以达雷尔的榜样为例 - 这是你所需要的。