Convierte tu página en RSS de forma dinámica
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:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
<?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:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 |
<%@ 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 dl 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.

ULTIMOS COMENTARIOS