ASP RSS Parser, Feed Reader

Depositphotos 4651719 s

Este fim de semana, fiquei colado ao meu laptop, pesquisando na rede por leitores de feeds RSS baseados na web. O motivo é que eu queria escrever um leitor de feed RSS asp que exibisse o feed de forma que o conteúdo pudesse ser copiado automaticamente para um e-mail HTML. Portanto, para as pessoas que desejam reservar uma parte de seu boletim informativo por e-mail para seus blogs ou artigos de publicação, isso pode ser facilmente incorporado. Como o JavaScript não exibe realmente o conteúdo até que o cliente carregue e execute o script, a abundância de navegadores RSS JavaScript não eram úteis. Eu precisava de um leitor de feed RSS do lado do servidor.

Comecei escrevendo meu próprio analisador em ASP usando o objeto MSXML. Consegui analisar cerca de 75% dos feeds RSS fazendo isso, mas algumas das especificações XML vagas nos feeds RSS provaram ser muito difíceis de programar. Você pode ver isso em ação aqui. Você pode passar o número máximo de itens (ni), o número de caracteres cortados na palavra (nc), bem como a URL. Você também pode ver o feed real com uma variável de depuração aqui.

Muitos feeds RSS são realmente muito 'sujos' e exigem a análise do texto no arquivo XML com código de manipulação de string (ugh!). Claro, ainda estamos na nossa 'juventude' RSS na rede, então não estou surpreso. Leia mais sobre as especificações RSS aqui.

Finalmente, encontrei uma pequena joia. Encontrei uma classe ASP grátis para fazer o download. É um pouco lento, mas não encontrei um feed que não conseguisse ler. Eu tenho uma versão estática aqui e uma versão dinâmica aqui.

Algumas notas sobre o roteiro. Eu precisei limpar algumas tags HTML nas descrições retornadas. Eu fiz isso com uma pequena função de limpeza que descobri:

Função RemoveHTML (strText) Dim nPos1 Dim nPos2 nPos1 = InStr (strText, ">") Do While nPos1> 0 nPos2 = InStr (nPos1 + 1, strText, ">") Se nPos2> 0 Then strText = Left (strText, nPos1 - 1) & Mid (strText, nPos2 + 1) Else Exit Do End If nPos1 = InStr (strText, ">") Loop RemoveHTML = strText End Function

Também adicionei outro código interessante: às vezes, posso querer exibir mais ou menos uma descrição. No entanto, se eu simplesmente limitar o número de caracteres, posso cortar a descrição no meio da palavra. Eu não quero fazer isso!

Função Cutoff (strText, intChars) dim intLength dim j intLength = len (strText) se intChars> intLength então para j = intChars para 0 passo -1 se mid (strText, j, 1) = "" então saia para o próximo se j> 0 então strText = left (strText, j-1) & "..." else strText = strText end if end if end if Cutoff = strText End Function

(Tive alguns problemas para exibir meu código corretamente nesta entrada ... deixe-me saber se você tiver problemas com alguma dessas funções!)

Também notei mais algumas ferramentas na rede. Existe um
. NET versão, muitas versões de PHP, uma tonelada de versões de JavaScript.

Para concluir, espero que as especificações RSS continuem a ser refinadas e os feeds reais estejam em conformidade com os padrões XML em todos os casos. Aplicativos gratuitos como TypePad, WordPress, etc. precisam refinar sua funcionalidade RSS. Blogs adicionais como MySpace, Xanga, LiveJournal, etc. precisam melhorar sua funcionalidade RSS. RSS é poderoso ...Chris Baggott escreveu um bom artigo sobre Email vs. RSS. Acho que combinar a funcionalidade deles pode aumentar o impacto de ambos!

O que você acha?

Este site usa o Akismet para reduzir o spam. Saiba como seus dados de comentário são processados.