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

Programming
Предыдущий Следующий

Для начала мы создадим страничку 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(https://www.aspnet.com.ua/);
feed.Links.Add(link);
//Автор
SyndicationPerson author = new SyndicationPerson();
author.Name="Shulga Leonid";
author.Uri =https://www.aspnet.com.ua/;
feed.Authors.Add(author);
//картинка
feed.ImageUrl = new Uri("https://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="https://www.aspnet.com.ua/RSSPage.ashx"
  title="AspNet - блог программиста" />

Кажись все

  • В 3/21/2013 7:08:16 PM, Аноним

    Приветствую!!! Если создавать страничку 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; } } } Куда именно нужно вставить код из вашего примера ? Можно пожалуйста немного поподробнее...

  • В 3/21/2013 7:18:31 PM,

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

Самостоятельный отпуск Опыт заказа вывоза мусора в Киеве Магія зміни: Від ночі до дня
Магія Вечірнього Неба: Відлякуйте втомленість дня і зануртеся у світ загадок і краси