Consumindo RSS no ASP.Net

10 10 2007

O RSS nada mais é do que um formato padronizado de XML utilizado para disponibilizar informações específicas na internet.

Um RSS Feed é um documento XML disponibilizado e atualizado regularmente por algum site, oferecendo conteúdo dinâmico que pode ser consumido por aplicações cliente.

Este documento oferece metadados sobre uma fonte de conteúdo (notícias, artigos, eventos, posts em blogs etc). O site msdn.com é um bom exemplo, disponibilizando uma série de feeds para serem consumidos: http://msdn.microsoft.com/aboutmsdn/rss/.

Um RSS Feed (documento XML) é formado por um channel, que é a fonte do conteúdo, e contém um title e description, que descrevem a fonte do conteúdo. Além disso, contém um ou mais elementos item, representando cada item do conteúdo (cada notícia, por exemplo). Cada item, por sua vez, pode ter um title, link e description.

(Dica: Leia mais sobre o que é o RSS neste link: http://www.xml.com/pub/a/2002/12/18/dive-into-xml.html)

Vamos agora colocar a mão na massa e criar uma aplicação ASP.NET que irá ler um RSS Feed disponibilizado na internet.

1) Criando o projeto

Crie um novo Projeto no VS.NET (File > New > Project). Escolha “Visual Basic Projects”, template “ASP.NET Web Application” (figura 1). Informe um nome para o projeto (neste caso, utilizei Rss).

2) Criando e configurando o DataGrid

Abra o webform gerado automaticamente (WebForm1.aspx). No modo Designer, abra a ToolBox (Ctrl+Alt+X) e arraste o objeto DataGrid. Nomeie o DataGrid como grd_aspnet. Defina a propriedade AutoGenerateColumns como False, e aplique o tipo de fonte que desejar.

Configure então as colunas do grid (clique com botão direito no grid > Property Builder).

No lado esquerdo da janela “Properties” do grid, clique na seção “Columns”.

Na lista “Available Columns”, selecione a “Hyperlink Column”, e clique no botão para adicionar (“>”), para que a coluna seja adiciona ao grid, aparecendo assim na lista “Selected columns”, à direita. Configure então as seguintes propriedades da coluna:

Header text: Title (ou um título qualquer para a coluna)
Text field: title (esse é o nó xml que contém o título do artigo/notícia)
URL field: link (este é o nó xml que contém o link para o artigo/notícia)
Target: _blank (forçará o link a abrir em uma nova janela).

As configurações devem ficar como na figura 2:

3) Acessando o RSS

Terminada a montagem do layout, iremos agora codificar o acesso ao XML desejado (disponibilizado na internet) e carrega-lo em um DataSet, para assim podermos preencher o DataGrid.

No nosso exemplo, utilizaremos o RSS para listar artigos e “headlines” sobre ASP.NET, disponibilizado direto na fonte, pelo MSDN.com. O link para o RSS é http://msdn.microsoft.com/asp.net/rss.xml.

(Obs.: Obviamente você poderá utilizar qualquer RSS Feed disponibilizado na internet).
Ainda no arquivo WebForm1.aspx, vá para o código (F7).

Defina o seguinte código no método Page_Load:

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles MyBase.Load
If Not Page.IsPostBack Then
Try
‘– Carrega o XML diretamente no DataSet
Dim ds as DataSet = New DataSet
ds.ReadXml(“http://msdn.microsoft.com/asp.net/rss.xml”)
Me.grd_aspnet.DataSource = ds.Tables(2).DefaultView
Me.grd_aspnet.DataBind()
Catch ex As Exception
Response.Write(“Erro: ” & ex.Message)
End Try
End If
End Sub

Note que o método ReadXml() do DataSet irá gerar um Schema com 3 DataTables (conforme a estrutura do XML): RSS, Channnel e Item. Como precisamos carregar a tabela Item, que é a que contém a listagem dos dados, é utilizado o índice 2 no range de Tabelas ao definir o DataSource do grid.

No Solution Explorer, clique com o botão direito no arquivo WebForm1.aspx e depois em “View in Browser”.

Fonte: http://www.linhadecodigo.com.br/Artigo.aspx?id=656&pag=2


Ações

Information

Deixe um comentário