【发布时间】:2010-09-09 05:41:27
【问题描述】:
有人知道将原始 XML RSS 提要导入 C# 的简单方法吗?我正在寻找一种将 XML 作为字符串获取的简单方法,以便我可以使用正则表达式对其进行解析。
谢谢, -格雷格
【问题讨论】:
有人知道将原始 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 Magazine Article for a good introduction。
如果您真的想使用正则表达式解析字符串(并且解析 XML 不是正则表达式的用途),获取内容的最简单方法是使用 WebClient 类。它有一个直接下载字符串采用。只需给它您的提要的 URL。检查这个link for an example of how to use it。
【讨论】:
我会将提要加载到 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>
}
【讨论】:
你想完成什么?
我发现System.ServiceModel.Syndication 类在处理提要时非常有用。
【讨论】:
【讨论】:
XmlDocument(位于 System.Xml 中,如果没有为您添加,则需要添加对 dll 的引用)用于将 xml 导入 C#。此时,只需调用以字符串格式提供内部 Xml 的 InnerXml 属性,然后使用正则表达式进行解析。
【讨论】:
获取 RSS 提要作为请求字符串的最佳方法是使用 System.Net.HttpWebRequest 类。设置 HttpWebRequest 的参数(URL 等)后,调用 HttpWebRequest.GetResponse() 方法。从那里,您可以使用 WebResponse.GetResponseStream() 获取流。然后,您可以将该流包装在 System.IO.StreamReader 中,并调用 StreamReader.ReadToEnd()。瞧。
【讨论】:
RSS 只是 xml,可以轻松地流式传输到磁盘。使用 Darrel 的示例 - 这就是您所需要的。
【讨论】: