Объединение нескольких RSS-каналов

Я очень новичок в программировании с помощью RSS-каналов, пожалуйста, прости меня, если это звучит как действительно общий вопрос.

Можно ли взять несколько RSS-каналов с нескольких сайтов и объединить их в один объект для показа конечному пользователю?

Например, могу ли я взять последние заголовки новостей с одного сайта, последние обновления блога с совершенно другого сайта и объединить их в один список, чтобы показать пользователю?

Я видел подобный вопрос, который задавался ранее, и кажется, что это возможно, но небольшая проблема заключается в том, что я хочу позволить пользователю добавлять любые каналы, которые они хотят, из любого источника.

Я ищу это в ASP.NET

Большое спасибо!

2 ответа

Решение

Вы можете использовать SyndicationFeed класс для работы с RSS-лентами в.Net.

Вы, вероятно, хотите сделать что-то вроде этого (не проверено):

var allItems = new List<SyndicationItem>();

foreach(var feedUrl in whatever) { //In your list of urls
    using(var reader = XmlReader.Create(url))
        allItems.AddRange(SyndicationFeed.Load(reader).Items);
}

var newFeed = new SyndicationFeed(items);

//Do something with newFeed

Вы должны добавить обработку ошибок в случае, если один из каналов недоступен или недействителен.

Это возможно, да.

Для хорошего примера такого рода вещей в действии, посмотрите Yahoo! Трубы.

Это, вероятно, будет хорошим применением LINQ to XML, но я оставлю реализацию на ваше усмотрение.

Другие вопросы по тегам