Leitor de RSS em .Net 4.0

Este post irá mostrar como é fácil e rápido criar um leitor de RSS feito em VB.Net 4.0.


Olá pessoal, neste artigo irei mostrar como é simples, rápido e prático criar um leitor de RSS utilizando o VB.net 2010.

Abra seu Visual Basic 2010 Express Edition e crie um novo projeto Windows Form Aplication e inclua nas referências do projeto a System.ServiceModel. Com isso, poderemos utilizar o namespace System.ServiceModel.Syndication, que contem a classe Rss20FeedFormatter que iremos utilizar para implementarmos nosso leitor.

Crie uma classe chamada clsRss.vb e importe os namespaces System.Xml e System.ServiceModel.Syndication. A seguir criaremos uma variável global e privada que irá guardar todas as informações do feed que iremos ler. Essa variável será do tipo SyndicationFeed e a chamarei de _feed. A seguir, criaremos o método ObterRss como a seguir:

<br>    Public Sub ObterRss(ByVal pUrl As String)<br>         Dim reader As XmlReader = XmlReader.Create(pUrl)<br>         Me._feed = SyndicationFeed.Load(reader)<br>     End Sub<br>

O parâmetro da classe é o endereço de url do RSS que iremos ler. A primeira linha do código cria um leitor de XML que irá criar o xml a partir da url do RSS. Na segunda linha, lemos o xml criado para o objeto do tipo SyndicationFeed que declaramos globalmente na classe. Pronto, já temos todas as informações do RSS.

A seguir, criaremos quatro propriedades para facilitar a interação da classe com o objeto SyndicationFeed. Iremos criar propriedades para retornar o título do RSS, a descrição do RSS, o link do site que o RSS está ligado e a lista de posts do RSS.

<br>     Public ReadOnly Property Titulo As String<br>         Get<br>             Return _feed.Title.Text<br>         End Get<br>     End Property<br> <br>     Public ReadOnly Property Descricao As String<br>         Get<br>             Return _feed.Description.Text<br>         End Get<br>     End Property<br> <br>     Public ReadOnly Property Link As String<br>         Get<br>             If _feed.Links.Count > 0 Then<br>                 Return _feed.Links(0).Uri.Scheme & "://" & _feed.Links(0).Uri.Host & _feed.Links(0).Uri.LocalPath<br>             Else<br>                 Return _feed.BaseUri.Scheme & "://" & _feed.BaseUri.Host & _feed.BaseUri.LocalPath<br>             End If<br>         End Get<br>     End Property<br> <br>     Public ReadOnly Property Posts As IEnumerable<br>         Get<br>             Return _feed.Items<br>         End Get<br>     End Property<br>

Essas três primeiras propriedades são bem simples e auto-explicativas.
A última, que retorna os posts do RSS, é do tipo IEnumerable pois retorna um coleção do tipo SyndicationItem. Esta classe implementa métodos e atributos para manipular os itens do RSS. Feito isso, nossa classe está pronta para ser usada.

Basta você utilizar o formulário do projeto para ler e exibir os dados de seu RSS. Abaixo, mostro um exemplo de como utilizar a propriedade Posts da classe que criamos:

<br> For Each item As SyndicationItem In oRss.Posts<br> Me.grdPosts.Rows.Add(item.PublishDate.ToLocalTime, item.Title.Text, item.Links(0).Uri, item.Summary.Text)<br> Next<br>

No arquivo deste arquivo, criei um pequeno formulário para ler e exibir o conteúdo de um RSS. Basta você informar a url do RSS.

Com a classe aqui criada, você estará apto a utilizá-la para os mais variados sistemas e aplicativos que necessitem utilizar informações vindas de RSS. Bem, é isso pessoal, espero ter ajudado. Qualquer dúvida é só mandar um e-mail: domingos@sopixel.com.br


Artigos relacionados