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:


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


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.


    Public ReadOnly Property Titulo As String
        Get
            Return _feed.Title.Text
        End Get
    End Property

    Public ReadOnly Property Descricao As String
        Get
            Return _feed.Description.Text
        End Get
    End Property

    Public ReadOnly Property Link As String
        Get
            If _feed.Links.Count > 0 Then
                Return _feed.Links(0).Uri.Scheme & "://" & _feed.Links(0).Uri.Host & _feed.Links(0).Uri.LocalPath
            Else
                Return _feed.BaseUri.Scheme & "://" & _feed.BaseUri.Host & _feed.BaseUri.LocalPath
            End If
        End Get
    End Property

    Public ReadOnly Property Posts As IEnumerable
        Get
            Return _feed.Items
        End Get
    End Property


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:


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


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