free web hostingHosting24.com web hosting

Parsear XML con Magpierss


Algunas veces nos encontramos con la necesidad de leer datos desde un XML, ya sea desde nuestro propio sitio o de sitios externos. Dado la versatibilidad y la facilidad que nos brinda XML para diferentes plataformas de trabajo, (como lo muestro tambien en este post), me puse a buscar alguna clase que me permita este trabajo en PHP y me encontré con Magpierss, existen otras más, pero me resultó relativamente fácil usar, esta que les presento a continuación:
Como primer paso descargamos la clase desde su sitio oficial.
Luego incluimos la clase en nuestra página de esta forma:

//incluyo magpierss clase para hacer lectura de los XML
require_once 'includes\magpierss\rss_fetch.inc';
//direccion la cual aparecerá al cargar la pagina
$url = 'http://www.infobae.com/adjuntos/html/RSS/deportes.xml';
//uso de la clase fetch_rss parsea la direccion que pasamos a $url
$rss = fetch_rss($url);


En el código anterior, como vemos incluimos rss_fetch.inc, necesario para parsear el XML.
Luego hacemos uso de la clase fetch_rss para dimensionar la variable $rss, que como veremos mas adelante usaremos para detectar los nodos de nuestro XML.
El siguiente paso es imprimir el resultado que nos arroja desde la dirección que hemos elejido, de esta forma:

		$contador=0;
		foreach ($rss->items as $item ) {
			$title = $item['title'];
			$url   = $item['link'];
			$contenido   = $item['description'];
		?>
			<li><a href="<?php echo $url; ?>"><?php echo $title;?></a>
			<p class="descrip"><?php echo $contenido; ?></p>
			</li>
			<?php
			$contador++;
			if ($contador==5){ break;}
		}

Utilizamos un foreach para recorrer los diferentes nodos de nuestro XML y pasamos a variebles el contenido de cada uno de ellos por ejemplo así: $title = $item['title']; en este caso rescato el nodo “title”. Solo para ejemplificar, hago lectura de un XML de noticias, las cuales casi siempre tienen los mismo nodos (title, link, description), que son los mas usados, tienen otros más como la fecha, hora y en algunos casos, imagenes. En el ejemplo puse un contador en solo 5 noticias. Si les interesa crear su propio XML de noticias pueden echarle un vistazo al post, como crear un RSS para mi sitio.
Espero les sea de utilidad para sus proyectos, como siempre les adjunto la DEMO y Descarga del código. Saludos.

También te puede Interesar

¿Disfrutaste esta entrada? Por qué no dejas un comentario abajo y continúas la conversación, o te suscribes a mi feed y obtienes artículos como este enviados a tu lector de feeds.

Comentarios

[...] de imagenes o simplemente un listado de pesonas de diferentes sectores de una empresa. En el post anterior, haciamos referencia de como trabajar con la clase Magpierss para parsear un XML, ahora vamos a [...]

Deja un Comentario

(requerido)

(requerido)