Сериализация данных из RSS-канала в ASP.NET - PullRequest
3 голосов
/ 21 мая 2010

Я бы хотел, чтобы пользователь указал адрес канала RSS и сериализовал информацию из него. Я не заинтересован в формате XML, но заполняю строго типизированный объект из XML. У меня вопрос, есть ли стандарт, который поддерживают все RSS-каналы (все ли они имеют дату, название и т. Д.)? Если так, то есть XSD, который описывает это. Если нет, то как мне обработать сериализацию RSS-канала для объекта в ASP.NET?

EDIT: Предметы SyndicationFeed имеют следующие свойства:

  • Title.Text -> Дает нам заголовок
  • Summary.Text -> Дает резюме

Q1 - Сводка включает html-теги. Есть ли способ раздеть их? Меня интересует только текст Q2 - Все ли RSS-каналы имеют полный контент в элементе Summary? Я вижу, что некоторые RSS-каналы содержат всего несколько строк для Summary, а другие содержат весь контент поста. Спасибо

Ответы [ 6 ]

3 голосов
/ 21 мая 2010

если вы ссылаетесь на 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);
        }
    }
}
0 голосов
/ 02 августа 2010

Вы можете использовать следующую функцию:

    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;
}
0 голосов
/ 21 мая 2010

Я могу предложить вам взглянуть на Argotic framework. Действительно легкая и полезная ванна для потребления и производства RSS-каналов.

0 голосов
/ 21 мая 2010

Стандарт на данный момент W3C - RSS 2.0 . RSS 0,91, 0,92 и 2,0 соответственно.

Использование .Net RSS.Net всегда было полезно.

0 голосов
/ 21 мая 2010

.NET Framework версии 3.5 предоставляет классы для чтения каналов. Эта статья описывает, как это сделать.

Если вы не используете 3.5, вы можете попробовать Atom.NET (Примечание: последнее обновление 6 лет назад).

0 голосов
/ 21 мая 2010

Да, RSS является стандартным форматом.

Если вы ищете "C # RSS Reader", вы найдете множество реализаций вспомогательных объектов, которые получают информацию из канала.

Вместо этого вы можете просто использовать Linq to XML, чтобы получить информацию непосредственно из XML. Скотт Гатри показывает вам, как в своем блоге его блог.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...