Обратный канал RSS - PullRequest
       27

Обратный канал RSS

1 голос
/ 26 сентября 2008

Это может быть странно. Вы когда-нибудь сталкивались с блогом, который хотели прочитать в хронологическом порядке? И этот блог может быть старым, с несколькими сотнями постов. Когда я добавляю этот фид в свой ридер, скажем, в googlereader, самый верхний фид появляется сверху, а по мере прокрутки вниз появляются старые посты. Это может быть неприятно, если вы хотите прочитать это с самого начала. Есть ли читатель, который делает это? Или я хотел бы сделать это как проект для домашних животных, (предпочтительно на C #), как именно я должен это делать? Кроме того, есть ли библиотеки .NET, которые я могу использовать для работы с RSS-каналами? Я раньше не программировал RSS-каналы.

РЕДАКТИРОВАТЬ Я хотел бы знать, есть ли какие-либо технические ограничения для этого. Это была одна интересная проблема, с которой я столкнулся, и решил, что ее можно решить программно.

Ответы [ 5 ]

2 голосов
/ 02 октября 2008

Если вы решили запустить собственное приложение C # для этого, это очень просто в текущей версии .NET Framework.

Найдите пространство имен System.ServiceModel.Syndication . У этого есть классы, связанные с каналами RSS и Atom. Недавно я написал некоторый код, который генерирует канал из базы данных, используя эти классы, и добавляет геокоды к элементам канала. У меня была та же проблема, когда мне нужно было изменить порядок элементов в ленте, потому что мой запрос к базе данных возвратил их в обратном порядке, который я хотел, чтобы мои пользователи видели.

Я просто удерживал список SyndicationItem объектов для канала в моей собственной структуре данных List<SyndicationItem> до тех пор, пока не хочу записать канал на диск. Тогда я бы сделал что-то вроде этого:

private SyndicationFeed m_feed;
private List<SyndicationItem> m_items;

...snip...

m_items.Reverse();
m_feed.Items = m_items;
2 голосов
/ 26 сентября 2008

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

2 голосов
/ 26 сентября 2008

В Google Reader, когда вы читаете фид, есть меню «Настройки фида ...» с параметрами: «Сортировать по самым новым», «Сортировать по самым старым».

Папки имеют те же параметры в меню «Настройки папок ...»

Программирование не требуется.

1 голос
/ 26 сентября 2008

В Google Reader вы можете отображать элементы в папке (фид) от самого нового до самого старого или от самого старого до самого нового. Для этого выберите канал, выберите выпадающий список «Настройки канала» и выберите «Сортировать по самому старому». Я не уверен, как далеко назад заходит Google Reader, но, возможно, полностью, так как он впервые начал отслеживать канал.

0 голосов
/ 26 сентября 2008

Это должно быть довольно легко с любым языком ... все, что вам нужно сделать, это прочитать канал XML в структуру DOM (почти все языки, включая C #, имеют класс DomDocument)

После этого вы сможете циклически перемещаться по узлам элементов в обратном порядке ...

см .: http://msdn.microsoft.com/en-us/library/ms756177(VS.85).aspx

Как уже говорилось, в зависимости от RSS-канала вы можете получить только конечное количество предметов.

...