如何在C#中导入原始RSS feed?
有谁知道将原始XML RSS feed导入C#的简便方法?我正在寻找一种将XML作为字符串获取的简单方法,因此我可以使用Regex对其进行解析。
谢谢,
格雷格
解决方案
回答
XmlDocument(位于System.Xml中,如果没有为我们添加,则需要添加对dll的引用)是将xml导入C#所使用的。此时,只需调用InnerXml属性,该属性将以字符串格式提供内部Xml,然后使用正则表达式进行解析。
回答
我们可能需要看看以下内容:http://www.codeproject.com/KB/cs/rssframework.aspx
回答
如果我们使用的是.NET 3.5,则现在获得对联合供稿(RSS和ATOM)的内置支持。查阅此《 MSDN杂志》文章以获得良好的介绍。
如果我们真的想使用regex解析字符串(并且解析XML不是regex的目的),那么获取内容的最简单方法是使用WebClient类,它具有一个下载字符串,可以直接使用。只要给它饲料的URL。检查此链接以获取有关如何使用它的示例。
回答
捕获RSS提要作为请求字符串的最佳方法是使用System.Net.HttpWebRequest类。设置HttpWebRequest的参数(URL等)后,请调用HttpWebRequest.GetResponse()方法。从那里,我们可以使用WebResponse.GetResponseStream()获得一个Stream。然后,我们可以将该流包装在System.IO.StreamReader中,并调用StreamReader.ReadToEnd()。瞧
回答
这应该足以让我们前进...
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(); }
回答
我将提要加载到XmlDocument中,并使用XPATH而不是regex,如下所示:
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> }
回答
你想达到什么目的?
我发现System.ServiceModel.Syndication类在处理提要时非常有用。
回答
RSS只是xml,可以轻松地流式传输到磁盘。以Darrel的示例为例,这就是我们所需要的。