Criando RSS Xml para o Seu Próprio Site

O RSS é um formato padronizado mundialmente, que funciona com linguagem XML (Extensible Markup Language), e é usado para compartilhar conteúdo Web. Ele permite, por exemplo, que o administrador de um site de notícias crie um arquivo XML com as últimas manchetes publicadas, a fim de compartilhá-las mais rapidamente com seus leitores. Este arquivo poderá ser lido através de qualquer ferramenta que seja capaz de entender o formato XML do RSS.

Crie um arquivo RSS.aspx clicando com o botão direito do mouse no projeto e adicionando um novo item. Esse arquivo gerará automaticamente um XML com os dados trazidos do banco de dados MYSQL.

Crie uma classe chamada BancoDados.cs criando dois métodos dentro da mesma. Uma chamada Conecta() e outra chamada Desconecta().

Segue abaixo a figura mostrando o primeiro método comentado acima:

 

Segue abaixo a figura do segundo método criado na classe BancoDados.cs.

Depois de criado os dois métodos da classe irei programar dentro da classe RSS.ASPX. Dentro da classe RSS, criei um método protegido sem passar parâmetros e sem retornar parâmetros. O método chama geraRSS().

Segue a figura abaixo mostrando a classe:

 

Dentro dessa classe primeiramente devo importar as classes que usarei.

Veja os importes abaixo:

 

/// para gerar o xml

using System.Data.Odbc;

using System.Text;

using System.Xml;

 

Veja a assinatura do método: protected void geraRss(), veja que é void, ou seja, sem retorno e sem parâmetros de entrada como dito antes. Segue todo código desse método a seguir.

 

protected void geraRss()

{

Response.Clear();

Response.ContentType = “text/xml”;

XmlTextWriter objX = new XmlTextWriter(Response.OutputStream, Encoding.UTF8);

objX.WriteStartDocument();

objX.WriteStartElement( “rss”);

objX.WriteAttributeString( “version”, “2.0”);

objX.WriteStartElement( “channel”);

objX.WriteElementString( “title”, “ARTIGOS – aspneti.com.br”);

objX.WriteElementString( “link”, “http://www.aspneti.com.br”);

objX.WriteElementString( “description”, “Artigos Publicados na Comunidade ASPNETI.COM.BR”);

objX.WriteElementString( “copyright”, “(c) 2005, ASPNETI.COM.BR, All rights reserved.”);

objX.WriteElementString( “ttl”, “5”);

BancoDados sBanco = new BancoDados();

sBanco.Conecta();

string sql = “select ch_artigos, desc_artigos, dt_artigos, tit_artigos from tb_artigos where status_artigos = ‘A’ order by dt_artigos desc limit 30”;

 

OdbcCommand objCommand = new OdbcCommand(sql, sBanco.sConn);

OdbcDataReader objReader = objCommand.ExecuteReader();

 

while (objReader.Read())

{

objX.WriteStartElement( “item”);

objX.WriteElementString( “title”,objReader.GetString(3));

objX.WriteElementString( “description”, “<img src=’http://www.aspneti.com.br/images/logo.gif’><br>Artigo Publicado na comunidade ASPNETI.COM.BR <br><br>” + objReader.GetString(1));

objX.WriteElementString( “link”, “http://www.aspneti.com.br/visualizar/downloadArtigo.aspx?ch_artigos=” + objReader.GetInt64(0).ToString());

objX.WriteElementString( “pubDate”, objReader.GetDateTime(2).ToString( “dd/MM/yyyy”));

objX.WriteEndElement();

}

objReader.Close();

sBanco.Desconecta();

 

objX.WriteEndElement();

objX.WriteEndElement();

objX.WriteEndDocument();

objX.Flush();

objX.Close();

Response.End();

}

 

Explicando o método :

 

Primeiramente crio um objeto XmlTextWriter e vou escrevendo dentro dele. Crio vários elementos ( WriteElementString) e vou adicionando as tags. Logo depois instancio a classe criada anteriormente de banco de dados e chamo o método para conectar.

 

Na linha abaixo, depois de conectar no banco de dados, crio uma variável sql fazendo um select nas tabelas do banco de dados. Não use esse mesmo select, porque estou fazendo para o meu banco de dados e tabelas, você deverá ter o seu banco e suas tabelas. Criei o seu próprio select.

 

Logo depois, executo e faço um laço adicionando valores aos elementos, depois fecho o objeto e o banco de dados e pronto, terminei de fazer o RSS.

 

Fonte: http://www.juliobattisti.com.br/artigos/csharp/rssxml001.asp

Deixe um comentário