Desarrollo de Páginas Web, Aplicaciones Informáticas a medida, Posicionamiento Web en Internet (SEO), Accesibilidad web, Usabilidad

Imagen de la cabecera de www.webprogramacion.com
Inicio     Qué es webprogramacion.com     Mi currículum     Contacta conmigo    

Servicios

  • ¿Quieres aumentar el número de visitas de tu página web?
  • ¿Necesitas formación sobre algún tema tratado en webprogramacion.com?
  • ¿Quieres que imparta algún curso sobre algún tema tratado en la web?
  • ¿Quieres que revise la accesibilidad web de tu página?
  • ¿Buscas una aplicación a medida para tu empresa?
  • ¿Necesitas colaboración en tu proyecto?
  • Pide presupuesto sin compromiso
Escríbeme a través de la siguiente página y me pondré en contacto contigo.
webprogramacion.com > Programacion > C# > Crear un canal RSS

Crear un canal RSS (C#)

En este artículo vamos a ver cómo crear un canal RSS en C#. Lo primero va a ser crear un archivo .aspx que llamaremos rss.aspx, por ejemplo.

Vamos a generar el código XML del fichero rss.aspx de manera dinámica, en tiempo de ejecución. Para ello tenemos que implementar el fichero rss.aspx de la siguiente forma.

El código html que va a tener el fichero será el siguiente:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="rss.aspx.cs" Inherits="rss" %>

Supongamos que tenemos un objeto de la clase DataSet llamado dsRSS que hemos rellenado con la información relativa a los artículos que queremos ofrecer vía RSS. El DataSet estará formado por cuatro columnas: titulo, enlace, vista_previa y fecha. A partir de esos datos rellenaremos nuestro canal RSS.

Crearemos un método que genere el contenido RSS en XML (el código XML será devuelto como String) de la siguiente forma:

public String getCanalRSS(DataSet dsRSS)
{
   MemoryStream ms = new MemoryStream();
   XmlTextWriter writer = new XmlTextWriter(ms, System.Text.Encoding.UTF8);
   writer.WriteStartDocument();
   writer.WriteStartElement("rss");
   writer.WriteAttributeString("version", "2.0");
   writer.WriteStartElement("channel");
   writer.WriteElementString("description", "Canal RSS de ejemplo");
   writer.WriteElementString("link", "Dirección del sitio web");
   writer.WriteElementString("title", "Título del canal RSS");
   for (int i = 0; i < dsRSS.Tables[0].Rows.Count; i++)
   {
      writer.WriteStartElement("item");
      writer.WriteElementString("title", dsRSS.Tables[0].Rows[i]["titulo"].ToString());
      writer.WriteElementString("link", dsRSS.Tables[0].Rows[i]["enlace"].ToString());
      writer.WriteElementString("description", dsRSS.Tables[0].Rows[i]["vista_previa"].ToString());
      writer.WriteElementString("pubDate", DateTime.Parse(dsRSS.Tables[0].Rows[i]["fecha"].ToString()).ToString("R"));
      writer.WriteEndElement();
   }
   writer.WriteEndElement();
   writer.WriteEndElement();
   writer.Flush();

   byte[] buffer;
   buffer = ms.ToArray();
   return System.Text.Encoding.UTF8.GetString(buffer);
}


Posteriormente programaremos el evento Page_Load del fichero rss.aspx.cs:

protected void Page_Load(object sender, EventArgs e)
{
   //Rellenaremos el contenido del DataSet dsRSS en este punto
   //para utilizarlo en la llamada al método getCanalRSS que haremos posteriormente

   Response.ContentType = "text/xml";
   Response.Write(this.getCanalRSS(dsRSS));
}

El DataSet dsRSS tendrá que ser rellenado al comienzo del evento Page_Load con el contenido del canal RSS. Lo habitual será rellenarlo mediante una consulta a la base de datos, con los últimos registros.

Necesitaremos incluir al principio del fichero rss.aspx.cs el siguiente código:

using System.Xml;
using System.IO;

Podemos insertar el siguiente código html en la cabecera de la página (entre las etiquetas <head> y </head>):

<link rel="alternate" type="application/rss+xml" title="Título del canal RSS" href="url del fichero rss.aspx" />

para indicarle al navegador que nuestro sitio web tiene canales RSS. Así cuando el usuario esté viendo la web, sabrá si hay canales RSS en dicha web.

Autor del artículo

Dámaso Velázquez

Fecha del artículo

7/6/2008

Etiquetas

rss xml

Artículos relacionados

Compartir

  • www.webprogramacion.com
  • informatica[at]webprogramacion.com
  • Formación
  • Accesibilidad
  • Aplicaciones a medida
  • Presencia en Internet
  • Salamanca

Valid XHTML 1.0 Transitional  ¡CSS Válido!  TAW.Test de accesibilidad web