有没有人知道将原始XML RSS Feed导入C#的简单方法?我正在寻找一种简单的方法来将XML作为字符串获取,以便我可以使用正则表达式解析它。
谢谢, -Greg
答案 0 :(得分: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();
}
答案 1 :(得分:11)
如果您使用的是.NET 3.5,那么您现在可以内置对联合供稿(RSS和ATOM)的支持。看看这个MSDN Magazine Article for a good introduction。
如果你真的想使用正则表达式解析字符串(并且解析XML不是正则表达式所针对的),获取内容的最简单方法是使用WebClient类。它有一个直接的下载字符串使用。只需为其提供Feed的网址即可。请检查此link for an example of how to use it。
答案 2 :(得分:2)
我会将Feed加载到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>
}
答案 3 :(得分:2)
你想要完成什么?
我在使用Feed时发现System.ServiceModel.Syndication类非常有用。
答案 4 :(得分:0)
XmlDocument(位于System.Xml中,如果没有为您添加,则需要添加对dll的引用)是用于将xml导入C#的内容。此时,只需调用InnerXml属性,该属性以字符串格式提供内部Xml,然后使用Regex进行解析。
答案 5 :(得分:0)
答案 6 :(得分:0)
将RSS提要作为请求的字符串获取的最佳方法是使用System.Net.HttpWebRequest类。一旦设置了HttpWebRequest的参数(URL等),就调用HttpWebRequest.GetResponse()方法。从那里,您可以使用WebResponse.GetResponseStream()获取Stream。然后,您可以将该流包装在System.IO.StreamReader中,并调用StreamReader.ReadToEnd()。瞧。
答案 7 :(得分:0)
RSS只是xml,可以轻松地流式传输到磁盘。和Darrel的例子一起 - 这就是你所需要的一切。