DotNetcr.com
Si deseas hacer un intercambio de links con DotNetcr, escríbenos aquí
Recibe las actualizaciones vía RSS
Te invitamos a unirte en nuestras redes
   http://www.facebook.com/DotNetcr
   http://www.twitter.com/dotnetcr

Convierte tu página en RSS de forma dinámica

Por royrojas | 7/8/2005 | Visitas 7,084 | Voto 5.00
Ahora todos los sitios importantes tienen sus sitios en RSS, con el fin de que los usuarios que así lo deseen, se puedan dar cuenta inmediatamente cuando tu sitio es actualizado con nueva información.
Categorías : VB.NET, C#, ASP.NET, XML
En este artículo vamos a explicar como crear tu archivo que genere el RSS de tu sitio.

El código aqui mostrado no lo invente yo, solo lo transforme de C# a VB para tener otra versión, luego al final del artículo pondremos la fuente original donde podran ver el código en C#.

Como primer paso necesitamos saber la estructura que va a tener nuestro archivo a la hora final, el cual nos va a servir como plantilla de trabajo

Ejemplo de estructura final del archivo:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<rss version="0.91">

<channel>
<title>Titulo de Nuestro Sitio Web</title>
<link>http://www.dotnetcr.com.com</link>
<description>Aqui podríamos poner una breve descripción de nuestro sitio</description>
<language>es-ES</language>
<copyright>2005 todos los derechos reservados</copyright>
<webMaster>webmaster@dotnetcr.com</webMaster>

<image>
<title>Imagen o Logo
<url>http://www.dotnetcr.com/logo.gif
<link>http://www.dotnetcr.com
<width>100
<height>12
</image>

<item>
<dc:creator>nombre o código del autor</dc:creator>
<title>Titulo del artículo</title>
<link>http://www.dotnetcr.com/articulo/21.html</link>
<description>
Descripcion del artículo, podría ser resumida
para obligar a nuestro lector a ir a nuestro sitio web
</description>
<pubDate>05/05/2005</pubDate>
</item>

</channel>
</rss>


Ahora expliquemos cada uno de los campos

Cabecera del archivo:
- title: es el título/nombre de tu sitio web.
- link: es la URL de la home de tu sitio web.
- description: es una descripción corta de tu sitio.
- language: es el idioma en la que está escrito tu sitio. En el caso de un sitio en inglés de Estados Unidos debería ser , español de España , español de Costa Rica , y para ver el código para otros paises aqui.

Items del archivo:
- dc:creator: creador del articulo
- title: Nombre del Articulo
- url: direccion donde se encuentra el articulo
- description: descripción breve del artículo
- pubDate: fecha en que se genera el archivo

La imagen es para adornar el documento xml, y que los lectores de noticias puedan desplegarlo, no es obligatorio, solo lo usas si quieres, y el tamaño recomendado es 90 x 36 pixeles.

Ahora si, Como creamos este archivo dinámicamente?, pues aquí te doy el código fuente:

<%@ Import Namespace=DotNetCR._Conexion %>
<%@ Import Namespace=System.Data %>
<%@ Page Language="vb" %>

<script runat="server">

'Load de página, aqui se llaman todos los métodos que crean el RSS
Private sub Page_Load(sender as object, e as System.EventArgs)
Dim writer as new System.Xml.XmlTextWriter( _
Response.OutputStream, _
System.Text.Encoding.UTF8)
Dim iRecursos as new Negocios.Recursos
Dim dtRecursos as DataTable
Dim drRecurso as DataRow

escribirInicioRSS(writer)
dtRecursos = iRecursos.TraerRecursosRSS.Tables("Recursos")

for each drRecurso in dtRecursos.Rows
agregarItemRSS(writer,drRecurso("NombreRecurso"), _
"http://www.mipaginaweb.com/recursos.aspx?art=" & _
drRecurso("CodigoRecurso"), _
drRecurso("DescripcionRecurso"), _
drRecurso("CodigoUsuario"))
next

escribirFinalRSS(writer)
writer.Flush()
writer.Close()

Response.ContentEncoding = System.Text.Encoding.UTF8
Response.ContentType = "text/xml"
Response.Cache.SetCacheability(HttpCacheability.Public)
Response.End()
end sub

'metodo que escribe los requirimientos iniciales del archivo e informacion general del canal
Private function escribirInicioRSS(writer as System.Xml.XmlTextWriter) as System.Xml.XmlTextWriter
writer.WriteStartDocument()
writer.WriteStartElement("rss")
writer.WriteAttributeString("version","2.0")
writer.WriteAttributeString("xmlns:blogChannel", _
"http://backend.userland.com/blogChannelModule")
writer.WriteStartElement("channel")
writer.WriteElementString("title", _
"MiPagina.COM - Ultimos artículos publicados")
writer.WriteElementString("link", "http://www.mipagina.com")
writer.WriteElementString("description", _
"MiPagina.com, Descripción de la pagina web")
writer.WriteElementString("language", "es-CR")
writer.WriteElementString("copyright", "Copyright 2005 MiPagina.com")
writer.WriteElementString("webMaster", "webmaster@mipagina.com")
writer.WriteElementString("managingEditor", _
"webmaster@mipagina.com")
writer.WriteElementString("generator",
"Creador de RSS por Roy Rojas v1.1")
return writer
end function

'funcion que escribe el item en el archivo xml
Private function agregarItemRSS(writer as System.Xml.XmlTextWriter, _
sTitulo as string , sLink as string, _
sDescripcion as string, sAutor as string) as System.Xml.XmlTextWriter
writer.WriteStartElement("item")
writer.WriteElementString("dc:creator", sAutor)
writer.WriteElementString("title", sTitulo)
writer.WriteElementString("link", sLink)
writer.WriteElementString("description", sDescripcion)
writer.WriteElementString("pubDate", DateTime.Now.ToString("r"))
writer.WriteEndElement()
return writer
end function

'metodo que escribe el final del archivo xml. lo cierra.
Private function escribirFinalRSS(writer as System.Xml.XmlTextWriter) as Ssem.Xml.XmlTextWriter
writer.WriteEndElemenem.Xml.XmlTextWriter
writer.WriteEndElement()
writer.WriteEndElement()
writer.WriteEndDocument()
return writer
end function

</script>


Este código crea el archivo xml para que pueda ser usado en cualquier lector de noticias estilo Bloglines, Feednees, Outlook, etc, y cada ves que exista un artículo nuevo automáticamente estos lectores se darán cuenta.

- Si quieres ver este código en C# visita este link en Mentores.NET.
- Convertir página en RSS Sindicacion.net
- Lista de paises y códigos permitidos
- Validar nuestro archivo RSS
Area de Comentarios
Por Anónimo - Fecha: 2006/09/22 01:25 PM
me parece interesante el codigo, puedes hacer algo parecido para extraer datos de SQL 2005 y generar 1 archivo para RSS.

Saludos
Luis C
Ecuador
Por Anónimo - Fecha: 2006/09/28 04:25 PM
Voy a probarlo

MAQ
Por Anónimo - Fecha: 2008/03/03 08:44 PM
pero donde se pone este codigo? carmaruiz@hotmail.com
Por Anónimo - Fecha: 2012/04/26 06:46 AM
This "free sahirng" of information seems too good to be true. Like communism.
Por Anónimo - Fecha: 2012/04/27 07:58 AM
iVGjDM , [url=http://jihfxzonhmdb.com/]jihfxzonhmdb[/url], [link=http://tlyjjpcznldh.com/]tlyjjpcznldh[/link], http://ydyvjeydwarw.com/
Por Anónimo - Fecha: 2012/04/29 12:30 AM
CUSTV2 , [url=http://jugmhphegloj.com/]jugmhphegloj[/url], [link=http://xgjtlxvfllbv.com/]xgjtlxvfllbv[/link], http://nuuvkqzhicmo.com/
Ingrese su Comentario
Comentario
Para poder votar debe estar registrado en DotNetcr.com
Solo queda registrado el primer voto enviado
Voto


Últimos Recursos
thesondemon
ibarra
dsevic
Eur
jota
juanjoguardiola
PER 237
MEX 236
CRI 185
COL 117
ESP 104
ARG 87