有谁知道将原始 XML RSS 提要导入 C# 的简单方法?我正在寻找一种将 XML 作为字符串获取的简单方法,以便我可以使用正则表达式对其进行解析。
谢谢,-格雷格
这应该足以让你继续......
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();
}
如果您使用的是 .NET 3.5,那么您现在可以获得对联合提要(RSS 和 ATOM)的内置支持。查看这篇MSDN 杂志文章以获得很好的介绍。
如果您真的想使用正则表达式解析字符串(并且解析 XML 不是正则表达式的用途),获取内容的最简单方法是使用 WebClient 类。它有一个可以直接使用的下载字符串。只需给它您的提要的 URL。查看此链接以获取有关如何使用它的示例。
你想达到什么目的?
我发现System.ServiceModel.Syndication类在处理提要时非常有用。
我会将提要加载到 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>
}
XmlDocument(位于 System.Xml 中,如果没有为您添加,则需要添加对 dll 的引用)是用于将 xml 导入 C# 的内容。此时,只需调用以字符串格式提供内部 Xml 的 InnerXml 属性,然后使用正则表达式进行解析。
您可能想看看这个: http: //www.codeproject.com/KB/cs/rssframework.aspx
获取 RSS 提要作为请求字符串的最佳方法是使用 System.Net.HttpWebRequest 类。设置 HttpWebRequest 的参数(URL 等)后,调用 HttpWebRequest.GetResponse() 方法。从那里,您可以使用 WebResponse.GetResponseStream() 获取流。然后,您可以将该流包装在 System.IO.StreamReader 中,并调用 StreamReader.ReadToEnd()。瞧。
The RSS is just xml and can be streamed to disk easily. Go with Darrel's example - it's all you'll need.