Pergunta

Esta poderia ser estranho, Alguma vez você já se deparar com um blog que você queria ler na ordem cronológica? E que o blog poderia ser velho, com várias centenas de mensagens. Quando eu adicionar este feed ao meu leitor de feeds, dizer Google Reader, o mais recente de alimentação vem em cima e como eu rolar para baixo ainda mais, os posts mais antigos aparecem. Isso pode ser frustrante se você quiser lê-lo desde o início. Existe algum leitor que faz isso? Ou, eu adoraria fazer isso como um projeto de estimação, (de preferência em c #), exatamente como eu deveria ir sobre ele? Além disso, há algum .NET bibliotecas que posso usar para trabalhar em feeds RSS? Eu não fiz qualquer programação feed RSS antes.

Editar eu gostaria de saber se existem quaisquer limitações técnicas no presente. Este foi jsut um problema interessante que eu encontrei que eu pensei que poderia ser combatida por meio de programação.

Foi útil?

Solução

Se você decidir fazer para rolar o seu próprio C # aplicativo para fazer isso, é muito simples na versão atual do .NET Framework.

Procure a System.ServiceModel.Syndication namespace. Que tem classes relacionadas a feeds RSS e Atom. Eu escrevi algum código recentemente que gera um feed de um banco de dados usando essas classes, e acrescenta geocodes aos itens de alimentação. Eu tive o mesmo problema em que eu precisava para inverter a ordem dos itens na alimentação, porque a minha consulta de banco de dados retornou los na ordem oposta Eu queria que meus usuários para ver.

O que fiz foi simplesmente segure a lista de SyndicationItem objetos para o feed em minha própria estrutura de dados List<SyndicationItem> até o momento que eu quero escrever a alimentação para o disco. Então eu faria algo assim:

private SyndicationFeed m_feed;
private List<SyndicationItem> m_items;

...snip...

m_items.Reverse();
m_feed.Items = m_items;

Outras dicas

No Google Reader, quando você está lendo um feed, há um "configurações de alimentação ..." menu com as opções:. "Classificar por mais novo", "Classificar por mais antigo"

As pastas têm as mesmas opções do menu "configurações da pasta ..."

Programação necessária nenhuma.

Eu acho que você pode ter problemas com isso. Muitos feeds RSS só manter o mais recente de 10 ou mais mensagens, por isso, não haveria maneira de fornecer os dados mais antigos da alimentação desde o blog começou.

No Google Reader, você pode tê-lo exibir os itens de uma pasta (alimentação) a partir de qualquer Recente para mais Antigo, ou Antigo para mais Recente. Para fazer isso, selecione o feed, selecione "Configurações de alimentação" drop down e selecione "Classificar por mais antigo". Eu não tenho certeza quão longe Google Reader vai, mas, possivelmente, todo o caminho desde que começou a primeira monitoramento do feed.

Este deve ser bastante fácil com qualquer linguagem ... tudo que você precisa fazer é ler o xml de alimentação em uma estrutura DOM (quase todos languauges incluindo C # tem uma classe DomDocument)

Você deve então ser capaz de simplesmente percorrer os nós de itens na ordem inversa ...

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

Como outro disse, dependendo do feed RSS, você pode ter apenas uma quantidade finita de itens.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top