65.9K
CodeProject 正在变化。 阅读更多。
Home

使用 .NET 创建 RSS 2.0 源

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2012 年 12 月 27 日

CPOL

2分钟阅读

viewsIcon

14759

一篇关于使用 .NET 创建符合 RSS 2.0 标准的源的文章,包含代码示例,使用 .NET XmlDocument 实现。

概述

与其发布另一篇关于使用第三方工具与 .NET MVC 配合的文章,我这次想尝试一种稍微不同的方法,写一篇基于我在创建 Jambr 时遇到的问题的 .NET 编程文章。

我需要为 Jambr 网站的 文章新闻 部分创建 RSS 源,以便可爱的读者可以订阅它们。实际上,我之前从未创建过 RSS 源,所以不得不研究一下,找到最佳方案。我阅读了许多在线编程文章,并编写了一个简单的类,可以创建符合 RSS2.0 标准的源,如 此处 所示。

Using the Code

与其将所有 237 行代码都放在这里,我已将该类上传供您使用,您可以 从这里下载。只需将其放入您的项目中,并像这样使用它
  1. 首先,您需要创建该对象的实例(如果我教你一些显而易见的东西,请见谅!)
    Dim rssfeed As New RSSFeed()
  2. 接下来,您需要创建频道。RSS2.0 源只能有一个频道,因此您只能调用此方法一次
    rssfeed.CreateChannel("Jambr - News"
    "Http://www.jambr.co.uk/News",
    "Jambr News",
    Now,
    "en-GB")
  3. 现在,您可以添加您的项目。显然,您需要循环遍历要在源中包含的对象并添加它们,但我们在这里只添加一个示例
    rssfeed.WriteRSSItem("This is an item",
    "http://www.yoursite.com",
    "Karl",
    Now,
    "This is the description",
    Guid.NewGuid.ToString)
  4. 最后,在添加完项目后,您可以返回 XML 文档的 string。由于我正在使用 .NET MVC 4 编码,因此我将 XML 文档像这样返回给用户
    Return Content(rssfeed.ToString, "text/xml")

值得注意的是,我在 CreateChannelWriteRSSItem 方法中都包含了一些额外的参数,这些参数使您可以添加类别(在 Jambr 的上下文中,我将所有文章标记为类别,以便对其进行分类)和内容(这将添加到 content:encoded 标签中)。要添加类别标签,请将它们作为 KeyValuePair(of String, String) 对象的数组传递。要添加内容,请将其作为 string 传递。

rssfeed.WriteRSSItem("This is an item",
"http://www.yoursite.com",
"Karl",
Now,
"This is the description",
Guid.NewGuid.ToString,
"This is the full body of the post",
{New KeyValuePair(Of String, String)("Tag1", "/Articles/?Tag=Tag1")})

我遇到的一些问题

在尝试确保源符合 RSS 2.0 标准 时,我遇到了一些问题,这些问题已在此代码中解决,例如

  1. 日期时间需要采用正确的格式(Sat, 07 Sep 2002 9:42:31 GMT),幸运的是,datetime 对象上的 .ToString("r") 可以处理该问题。
  2. 将自定义命名空间添加到文档的根 rss 元素,然后实际启用我编写引用该命名空间的标签。例如,<dc:creator> 标签。

希望这有帮助!如有任何问题,请随时提问。

© . All rights reserved.