Leer un feed RSS es tan sencillo como instanciar un
objeto Zend_Feed_Rss con la URL del feed:
$channel = new Zend_Feed_Rss('http://rss.example.com/channelName');
Si ocurre algún error al obtener el feed, se lanzará una Zend_Feed_Exception.
Una vez que tiene un objeto feed, puede acceder a cualquiera de las propiedades estándar del "channel" (canal) RSS directamente en el objeto:
echo $channel->title();
Observe la sintaxis de función. Zend_Feed usa una convención
de tratar las propiedades como objeto XML si se solicitan con
sintaxis "getter" de variable ($obj->property) y como cadenas
si se accede a ellas con sintaxis de método ($obj->property()).
Esto permite el acceso al texto completo de cualquier nodo individual, a la vez
que sigue permitiendo el acceso completo a todos los hijos.
Si las propiedades del canal tienen atributos, son accesibles usando la sintaxis de array de PHP:
echo $channel->category['domain'];
Dado que los atributos XML no pueden tener hijos, no es necesaria la sintaxis de método para acceder a los valores de los atributos.
Lo más habitual será que quiera recorrer el feed y hacer algo con sus entradas.
Zend_Feed_Abstract implementa la interfaz
Iterator de PHP, por lo que imprimir
todos los títulos de los artículos en un canal es simplemente cuestión de:
foreach ($channel as $item) {
echo $item->title() . "\n";
}
Si no está familiarizado con RSS, estos son los elementos estándar que puede esperar encontrar disponibles en un canal RSS y en elementos RSS individuales (entradas).
Elementos de canal obligatorios:
title - El nombre del canal
link - La URL del sitio web correspondiente al canal
description - Una o varias frases describiendo el canal
Elementos de canal opcionales comunes:
pubDate - La fecha de publicación de este conjunto de contenido, en formato de fecha RFC 822
language - El idioma en que está escrito el canal
category - Una o más (especificadas mediante múltiples etiquetas) categorías a las que pertenece el canal
Los elementos <item> de RSS no tienen ningún elemento estrictamente obligatorio. Sin embargo, debe estar presente title o description.
Elementos de item comunes:
title - El título del item
link - La URL del item
description - Una sinopsis del item
author - La dirección de correo electrónico del autor
category - Una o más categorías a las que pertenece el item
comments - URL de los comentarios relacionados con este item
pubDate - La fecha en que se publicó el item, en formato de fecha RFC 822
En su código siempre puede comprobar si un elemento no está vacío con:
if ($item->propname()) {
// ... proceed.
}
Si usa $item->propname en su lugar, siempre obtendrá un
objeto vacío que se evaluará como TRUE, por lo que su
comprobación fallará.
Para más información, la especificación oficial de RSS 2.0 está disponible en: http://blogs.law.harvard.edu/tech/rss