On The Rocks

October 5, 2006

Como criar um RSS em C#

Filed under: Programming

Para criar um Really Simple Syndication (RSS), é necessário em primeiro lugar escolher um tópico para os conteúdos que vamos publicar e a fonte desses conteúdos, como exemplo, um RSS com as ultimas notícias de trânsito, devemos procurar um site com as informações de trânsito mais actualizadas.

Eu para criar um RSS em C# utilizei uma class library chamada RSS.NET que é open-source e tem tudo o que precisamos para criar um RSS.

Primeiro criamos um novo projecto web e na pagina principal, e colocamos os seguinte código no evento OnLoad da pagina:

WebClient wc = new WebClient(); Stream s =  wc.OpenRead("http://www.brisa.pt/Brisa/vPT/Viajar+na+Rede/Transito+Online/?tipo=regiao&idregiao=1"); StreamReader reader = new StreamReader (s);
string str = reader.ReadToEnd ();

Isto serve para retirar o HTML que irá servir de fonte ao nosso RSS. Em seguida criamos uma Regular Expression que irá  ler os conteúdos do HTML lido do site:

//Criamos o Canal que alimenta o RSS

RssChannel channel = new RssChannel();

//Criamos uma Regular Expression que irá conter os atributos do nosso RSS

Regex RegexObj = new Regex("<img\\ssrc=’(?<IMGSRC>/PresentationLayer/Resources/Design/vPT/(?<FILE>.*?)\\.gif)’

\\salign=\"left\">\\s*\\t*\\r*\\n*\\r*\\n*<a\\s*[^>]*AEPKSentido\\((?<AE>\\d*),(?<KMINICI

O>\\d*),(?<KMFIM>\\d*),(?<SENTIDO>\\d*)\\)\\s*[^>]*>\\s*\\t*\\r*\\n*\\r*\\n*(?<DESC>

[^<].*?)\\s*\\t*\\r*\\n*\\r*\\n*</a>");

 foreach (Match m in RegexObj.Matches(str))
{
RssItem item = new RssItem();

//Criamos um Item e adicionamos os conteudos definidos na regular expression

item.Title = string.Format("Auto Estrada A{0}",m.Groups["AE"].Value);
item.Description = string.Format("<img src=’{0}’> {1}", m.Groups["IMGSRC"].Value, m.Groups["DESC"].Value);
item.Link = new Uri(string.Format("http://www.brisa.pt/BRISA/vPT/Viajar+na+Rede/Transito+Online/?tipo=estrada&idae={0}", m.Groups["AE"].Value)); item.PubDate = DateTime.Now.ToUniversalTime();

//Adicionamos o item ao canal

 channel.Items.Add(item);

}

channel.Title = "Transito";
channel.Link = new Uri("http://www.brisa.pt/Brisa/vPT/Viajar+na+Rede/Transito+Online/?tipo=regiao&idregiao=1");

channel.Description = "Transito Feed";

RssFeed feed = new RssFeed();

// Por fim assignamos o canal ao alimentador do RSS.

feed.Channels.Add(channel);

// E escrevemos todo o conteúdo do feed para a página.

 

Response.ContentType = "text/xml";
feed.Write(Response.OutputStream);
Response.End();

Por fim, num software que leia RSS criem uma nova subscrição para o website criado na vossa máquina.

 

Comments »

The URI to TrackBack this entry is: http://ontherocks.blogsome.com/2006/10/05/como-criar-um-rss-em-c/trackback/

No comments yet.

RSS feed for comments on this post.

Leave a comment

Line and paragraph breaks automatic, e-mail address never displayed, HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>



Anti-spam measure: please retype the above text into the box provided.

Get free blog up and running in minutes with Blogsome
Theme designed by Jay of onefinejay.com