我希望用户指定RSS源地址并从中序列化信息。我对XML格式不感兴趣,但是从XML填充强类型对象。我的问题是,是否有一个标准,所有RSS源支持(所有这些都有日期,标题等)?如果是这样,是否有描述这个的XSD。如果没有,我如何处理序列化ASP.NET中对象的RSS源?
编辑: SyndicationFeed的项目具有以下属性:
Q1 - 摘要包含html标签。剥离它们有办法吗?我只对文本感兴趣 Q2 - 所有RSS源在Summary元素中是否包含完整内容?我看到一些RSS提要只有几行用于摘要,而其他RSS提供了帖子的全部内容。感谢
答案 0 :(得分:3)
如果您引用System.ServiceModel.Web,则有一些选项可以将提取提取到强类型对象
using (var reader = XmlReader.Create(@"http://newsrss.bbc.co.uk/rss/newsonline_world_edition/front_page/rss.xml"))
{
var feed = SyndicationFeed.Load(reader);
if (feed != null)
{
foreach (var item in feed.Items)
{
Console.WriteLine(item.Title.Text);
}
}
}
答案 1 :(得分:0)
是RSS是标准格式。
如果您搜索“C#RSS阅读器”,您会发现许多辅助对象的实现,可以从Feed中获取信息。
您可以使用Linq to XML直接从XML获取信息。 Scott Guthrie在他的博客his blog.
中向您展示了这一点答案 2 :(得分:0)
答案 3 :(得分:0)
答案 4 :(得分:0)
我建议你看看Argotic框架。非常容易和有用,洗澡消费和生产RSS feed。
答案 5 :(得分:0)
您可以使用以下功能:
public object getRSS(string url)
{
XDocument feedXML = XDocument.Load(url);
var feeds = from feed in feedXML.Descendants("item")
select new
{
Title = feed.Element("title").Value,
Link = feed.Element("link").Value,
Description = feed.Element("description").Value,
};
return feeds;
}