如何在 C# 中导入原始 RSS 提要?
Posted
技术标签:
【中文标题】如何在 C# 中导入原始 RSS 提要?【英文标题】:How can I import a raw RSS feed in C#? 【发布时间】:2010-09-09 05:41:27 【问题描述】:有人知道将原始 XML RSS 提要导入 C# 的简单方法吗?我正在寻找一种将 XML 作为字符串获取的简单方法,以便我可以使用正则表达式对其进行解析。
谢谢, -格雷格
【问题讨论】:
【参考方案1】:这应该足以让你继续前进......
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();
【讨论】:
或者直接调用 wc.DownloadString("feed url");【参考方案2】:如果您使用的是 .NET 3.5,您现在可以获得对联合源(RSS 和 ATOM)的内置支持。看看这个MSDN Magazine Article for a good introduction。
如果您真的想使用正则表达式解析字符串(并且解析 XML 不是正则表达式的用途),获取内容的最简单方法是使用 WebClient 类。它有一个直接下载字符串采用。只需给它您的提要的 URL。检查这个link for an example of how to use it。
【讨论】:
有趣的文章。我需要开始研究 WCF 和 Syndication API。【参考方案3】:我会将提要加载到 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>
【讨论】:
【参考方案4】:你想完成什么?
我发现System.ServiceModel.Syndication 类在处理提要时非常有用。
【讨论】:
【参考方案5】:你可能想看看这个:http://www.codeproject.com/KB/cs/rssframework.aspx
【讨论】:
【参考方案6】:XmlDocument(位于 System.Xml 中,如果没有为您添加,则需要添加对 dll 的引用)用于将 xml 导入 C#。此时,只需调用以字符串格式提供内部 Xml 的 InnerXml 属性,然后使用正则表达式进行解析。
【讨论】:
【参考方案7】:获取 RSS 提要作为请求字符串的最佳方法是使用 System.Net.HttpWebRequest 类。设置 HttpWebRequest 的参数(URL 等)后,调用 HttpWebRequest.GetResponse() 方法。从那里,您可以使用 WebResponse.GetResponseStream() 获取流。然后,您可以将该流包装在 System.IO.StreamReader 中,并调用 StreamReader.ReadToEnd()。瞧。
【讨论】:
【参考方案8】:RSS 只是 xml,可以轻松地流式传输到磁盘。使用 Darrel 的示例 - 这就是您所需要的。
【讨论】:
以上是关于如何在 C# 中导入原始 RSS 提要?的主要内容,如果未能解决你的问题,请参考以下文章