domingo, 11 de março de 2012

XML - RSS Reader em VB.Net

No seguimento dos dois post anteriores vamos agora criar um RSS Reader com o Visual Basic 2010.
A interface será assim


Componentes: um TableLayoutPanel (para organizar a interface), uma combobox (permite escolher a origem da feed RSS), uma listbox (onde apresentamos os títulos dos artigos), um label (sempre útil para mostrar estado e outras informações), um botão (permite iniciar o processo de download do ficheiro XML com a lista de artigos) e por fim um WebBrowser que permitirá visualizar as páginas dentro da nossa aplicação.

O código:
A parte principal do código está localizado no botão e tem o seguinte aspeto:
        Dim ligacao As String
        Dim doc As New XmlDocument
        Dim items As XmlNodeList

        If Me.ComboBox1.SelectedIndex = -1 Then
            Me.Label1.Text = "Tem de selecionar a fonte de RSS!"
            Exit Sub
        End If

        If Me.ComboBox1.Text = "PCMagazine" Then
            ligacao = "http://rssnewsapps.ziffdavis.com/pcmag.xml"
        Else
            ligacao = "http://newsrss.bbc.co.uk/rss/newsonline_uk_edition/front_page/rss.xml"
        End If

        Me.Label1.Text = "A carregar RSS! Aguarde..."
        Application.DoEvents()

        Me.ListBox1.Items.Clear()
        doc.Load(ligacao)
        items = doc.SelectNodes("//item")
        Try
            For Each item As XmlNode In items
                'titulo
                Me.ListBox1.Items.Add(item.SelectSingleNode("title").InnerText)
                'link
                lista.Add(item.SelectSingleNode("link").InnerText)
            Next
            Me.Label1.Text = "Concluído!"
        Catch ex As Exception
            Me.Label1.Text = "Erro de ligação"
        End Try

Comparando com o código C# do post anterior é possível ver que é muito semelhante, à exceção da parte que lida com a listbox.

O clique num artigo da lista vai, então, carregar a página web correspondente no webcontrol, e o código que permite essa tarefa é:


        If ListBox1.SelectedIndex = 0.1 Then Exit Sub

        Dim ligacao As New Uri(lista(ListBox1.SelectedIndex))
        Me.Label1.Text = ListBox1.Text
        Me.WebBrowser1.Url = ligacao

E pronto assim temos um leitor de feeds RSS muito simples mas sempre útil.

O projeto.

Sem comentários:

Enviar um comentário