É um contexto, em que a informação é de extrema utilidade, que tal permitir que nossa aplicação apresente notícias atualizadas em tempo real? Pois é, a idéia desse artigo, é utilizar os feeds RSS do portal Terra (mais especificamente, sobre os assuntos de tecnologia) e carregar um Repeater com um DataTable previamente alimentado com XML.
Antes de mais nada, veja como ficará nossa aplicação ASP.NET.
Pois bem, abra o Visual Studio (usaremos a versão 2008 Professional Edition no escopo deste artigo) e crie um novo projeto do tipo Web Site com o nome RssTerra.
Adicione um controle Repeater na página Default.aspx e altere o template (aba Source) adicionando algumas tags conforme as linhas abaixo:
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<a href="<%# DataBinder.Eval(Container.DataItem, "link") %>" target="_blank">
<%# DataBinder.Eval(Container.DataItem, "titulo") %>
</a><br />
<%# DataBinder.Eval(Container.DataItem, "data") %><br />
<%# DataBinder.Eval(Container.DataItem, "descricao") %><br />
</ItemTemplate>
<SeparatorTemplate>
<hr style="width: 400px; text-align: left;" />
</SeparatorTemplate>
</asp:Repeater>
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Terra - RSS - Tecnologia</title>
</head>
<body style="font-family: Trebuchet MS; font-size: 11px;">
<form id="form1" runat="server">
<div>
<h2>Últimas notícias de tecnologia do Terra</h2>
<p>Desenvolvido por Tecla - Programação On-Line</p><br />
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<a href="<%# DataBinder.Eval(Container.DataItem, "link") %>" target="_blank">
<%# DataBinder.Eval(Container.DataItem, "titulo") %>
</a><br />
<%# DataBinder.Eval(Container.DataItem, "data") %><br />
<%# DataBinder.Eval(Container.DataItem, "descricao") %><br />
</ItemTemplate>
<SeparatorTemplate>
<hr style="width: 400px; text-align: left;" />
</SeparatorTemplate>
</asp:Repeater>
</div>
</form>
</body>
</html>
Após a alteração no Repeater, veja o formato da exibição das notícias na aba Design da página.
A aparência da aplicação está pronta, só nos resta criar a rotina em linguagem C# para obter os dados do Terra através do arquivo XML. Perceba que iremos extrair os elementos do XML e alimentar o DataTable.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Xml;
using System.Data;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
this.LerRssTerra();
}
/// <summary>
/// Método utilizado para ler o rss de tecnologia do site TERRA
/// </summary>
private void LerRssTerra()
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("http://rss.terra.com.br/0,,EI12879,00.xml");
DataTable dt = CriarDataTable();
XmlNodeList noXml = xmlDoc.SelectNodes("/rss/channel/item");
foreach (XmlNode no in noXml)
{
dt.Rows.Add(no["title"].InnerText,
DateTime.Parse(no["pubDate"].InnerText).ToString(),
no["description"].InnerText,
no["link"].InnerText);
}
Repeater1.DataSource = dt;
Repeater1.DataBind();
}
/// <summary>
/// Retorna a estrutura de um DataTable para alocar os elementos do xml
/// </summary>
/// <returns>DataTable</returns>
private DataTable CriarDataTable()
{
DataTable dt = new DataTable();
dt.Columns.Add("titulo", typeof(string));
dt.Columns.Add("data", typeof(string));
dt.Columns.Add("descricao", typeof(string));
dt.Columns.Add("link", typeof(string));
return dt;
}
}
Feito isso, vamos executar nossa aplicação web. Pressione a tecla F5 ou clique no menu Debug > Start Debugging. Se tudo correr bem, o resultado será o mesmo da primeira imagem do artigo.
Até a próxima!
Nenhum comentário:
Postar um comentário
Deixe aqui seu comentário