´

C# – Consumir un XML o un RSS alojado en la web de manera sencilla

Este artículo es una copiar cruzada del artículo original publicado en mi blog:

C# – Consumir un XML o un RSS alojado en la web de manera sencilla

------------------------------

Muchas veces necesitamos leer contenidos RSS o XML desde la web, y lo necesitamos de manera rápida, ligera y fácil de usar.

Buscando a través de la internet se pueden conseguir varias soluciones de varios sabores diferentes.

En este artículo enseñare a crear un componente capaz de leer cualquier XML que se encuentre en la web con el fin de acceder a su información de manera sencilla y de paso explicaré que hacer cuando ese XML sea un RSS para sacarle mayor provecho.

El problema lo podemos fraccionar en 2 partes


  1. Obtener el XML o RSS de la web
  2. Acceder a esa información por medio de un componente conocido, un Dataset 

 

OBTENER EL XML O RSS DE LA WEB


Para lograr este objetivo se hace necesario hacer uso de un objeto HttpWebRequest para crear un Request a la URL donde se encuentra alojado el XML y luego capturar la respuesta (Response).


public static DataSet GetXMLDataSet(string URL)
{
    HttpWebRequest xmlRequest = (HttpWebRequest)WebRequest.Create(URL);
    WebResponse xmlResponse = xmlRequest.GetResponse();   
}

ACCEDER A ESA INFORMACION POR MEDIO DE UN COMPONENTE CONOCIDO, UN DATASET


Aunque ya tenemos el WebResponse este de por si no nos permite un acceso ‘multiuso’ a la información que contiene, pero ya que sabemos que nuestro WebResponse contiene información XML podemos aprovecharnos de eso para crear un Dataset. El Dataset se puede crear a partir de un Stream así que haremos uso del método GetResponseStream para obtenerlo, creamos un DataSet vacio y luego lo llenamos con ReadXml.

public static DataSet GetXMLDataSet2(string URL)
{
    HttpWebRequest xmlRequest = (HttpWebRequest)WebRequest.Create(URL);
    WebResponse xmlResponse = xmlRequest.GetResponse();
    Stream responseStream = xmlResponse.GetResponseStream();
  
    DataSet xmlData = new DataSet();
    xmlData.ReadXml(responseStream);
    return xmlData;

}

Reduciendo un poco el código queda:


public static DataSet GetXMLDataSet(string URL)
{
    HttpWebRequest xmlRequest = (HttpWebRequest)WebRequest.Create(URL);
    DataSet xmlData = new DataSet();
    xmlData.ReadXml(xmlRequest.GetResponse().GetResponseStream());
    return xmlData;
}

Ya estuvo, ahora es tiempo de sacarle provecho al DataSet.

Leave a Comment

(required) 

(required) 

(optional)
 

(required) 

If you can't read this number refresh your screen
Enter the numbers above: