G+

Как создать rss для своего сайта

Программирование Asp.net
Предыдущий Следующий

Для начала мы создадим страничку Handler.ashx, как для меня она больше всего подходит для Rss.
Добавим ссылки на библиотеки, что мы будем использовать:

using System.ServiceModel.Syndication;
using System.Xml;
using System.Collections.Generic;

Дальше создаем общее сведение о нашем rss-канале

//Название
feed.Title = new TextSyndicationContent
    ("AspNet - блог программиста");
feed.Copyright = new TextSyndicationContent
    ("© 2009 Shulga Leonid");
feed.Description = new TextSyndicationContent
    ("Блог программиста - советы, картинки, истории, приколы, анекдоты, видео ASP ASP.NET C# LINQ silverlight xaml");
feed.Generator = "Leonid's RSS Feed Generator";
//Cсылка на источник
SyndicationLink link = new SyndicationLink();
link.Title = "AspNet - блог программиста";
link.Uri = new Uri(http://www.aspnet.com.ua/);
feed.Links.Add(link);
//Автор
SyndicationPerson author = new SyndicationPerson();
author.Name="Shulga Leonid";
author.Uri =http://www.aspnet.com.ua/;
feed.Authors.Add(author);
//картинка
feed.ImageUrl = new Uri("http://www.aspnet.com.ua/aspnetrss.gif");

После этого будем наполнять наш канал инфой. Для этого создаем список:

List<SyndicationItem> items = new List<SyndicationItem>();
SyndicationItem item =
new SyndicationItem();
item.Id =
Guid.NewGuid().ToString();
item.Title =
new TextSyndicationContent("Заголовок");
item.Summary =
new TextSyndicationContent("Тело");
item.Categories.Add(
new SyndicationCategory("Категория не обязательно"));
item.PublishDate =
new DateTimeOffset(blog.Date);
items.Add(item);

Добавляем наш список к каналу

feed.Items = items;
Который потом передаем на выход

context.Response.Clear();
context.Response.ContentEncoding =
System.Text.Encoding.UTF8;
context.Response.ContentType = "text/xml";

XmlWriter rssWriter = XmlWriter.Create
(context.Response.Output);
Rss20FeedFormatter rssFormatter =
new Rss20FeedFormatter(feed);
rssFormatter.WriteTo(rssWriter);
rssWriter.Close();

context.Response.End();

Последнее что нам нужно сделать, это показать браузеру что у на сайте есть rss. Для этого на страничках добавляют такой линк в тег <head>

<link rel="alternate" type="application/rss+xml"
  href="http://www.aspnet.com.ua/RSSPage.ashx"
  title="AspNet - блог программиста" />

Кажись все

Комментарий:
  • В 21.03.2013 19:08:16, Аноним

    Приветствую!!! Если создавать страничку Handler.ashx, то в ней по умолчанию уже будет следующий код: public class Handler : IHttpHandler { public void ProcessRequest (HttpContext context) { context.Response.ContentType = "text/plain"; context.Response.Write("Привет всем!"); } public bool IsReusable { get { return false; } } } Куда именно нужно вставить код из вашего примера ? Можно пожалуйста немного поподробнее...

  • В 21.03.2013 19:18:31,

    нужно вставлять место строк: context.Response.ContentType = "text/plain"; context.Response.Write("Привет всем!"); ссылки на библиотеки должны быть вверху файла

Самостоятельный отпуск Опыт заказа вывоза мусора в Киеве