Libro de Visitas Gratis
Inicio | Directorio de Páginas | Diseño Gráfico | Gadgets | Posicionamiento | Webmasters| Buscador de Artículos | Glosarios

Recorrer archivo XML, para lector RSS usando la extensión SimpleXML

Añade Tu Web Al Directorio de NocionDigital.com
La extensión SimpleXML ofrece un conjunto de herramientas simples y fáciles de usar para convertir un XML en un objeto que puede ser procesado con selectores de propiedades e iteradores de matrices y nos permite leer e interpretar un archivo XML.


$url = 'rss.xml';
if (file_exists($url))
{
$noticias = simplexml_load_file($url);
if($url)
{
foreach ($noticias->item as $noticia)
{
echo "".$noticia->title."
".$noticia->description;
}
}
else echo "Sintaxi XML inválida";
}
else echo "Error al abrir ".$url;
?>



El archivo a tratar es el que indicará la variable $url, también puede ser una ruta absoluta a un archivo por ejemplo 
http://www.nociondigital.com/rss.php, si el archivo existe y su sintaxi XML es correcta pasa a procesarse.

Con un foreach se recorre todo el archivo, saltando de item a item, y extraiendo la información.

En el siguinete ejemplo, se hace un comprobación del formato del archivo XML, se mira si el formato es del tipo Noticias->channel->item (como el 
http://www.nociondigital.com/rss.php) o Noticias->item (como este http://www.nociondigital.com/rss/) y se procesa segun sea su formato.


$url="http://www.xlwebmasters.com/rss.php";

$Noticias = simplexml_load_file($url);
if (!count((array)$Noticias->item))
//Si es 0 quiere decir que existe la etiqueta channel
{
foreach($Noticias->channel->item as $Noticia)
{
echo utf8_decode($Noticia->title);
}
}
else
{
foreach($Noticias->item as $Noticia)
{
echo utf8_decode($Noticia->title);
}
}
?>



En este ejemplo se sigue haciendo la comprobación del formato y ademas si se le pone un valor a la variable $num_noticies se leeran los items hasta llegar a este valor o hasta el final del archivo. Sirve para presentar un número determinado de items.


$url="http://www.xlwebmasters.com/rss.php";
$num_noticies=5;

$Noticias = simplexml_load_file($url);
if (!count((array)$Noticias->item))
{
for ($i=0; $Noticias->channel->item[$i]->title!="" AND $i<$num_noticies; $i++)
{
echo utf8_decode($Noticias->channel->item[$i]->title)';
}
}
else
{
for ($i=0; $Noticias->channel->item[$i]->title!="" AND $i<$num_noticies; $i++)
{
echo utf8_decode($Noticias->item[$i]->title);
}
}
?>

 
Hits
DOCUMENTOS RELACIONDOS
6325
Pop-up automático.
1044
Usando Response.Buffer.
2363
Contador de hits controlado por Cookies.
3127
HTML básico.
1132
Detectar si el navegador soporta WML.
1134
Sintaxis de PHP.
1881
Reflejo en el agua.
1414
Evitar que se visualicen los errores de PHP.
2975
Sticky Note, pop-up configurable.
3581
Unidades de longitud.
863
Variables variables.
1204
Imprimir la fecha en español.
2296
¿Que es una sesión en PHP?.
7754
Envio de datos en AJAX por el método POST.
1272
Recomendar pagina mediante enlace.
1039
Barajas y cartas.
900
Listado de un array.
30968
Servicios Web con PHP (NuSOAP).
1887
Filtro de colores para imágenes.
1414
Recorrer un directorio y sus subdirectorios.


www.nociondigital.com - Todo para un mundo digital. Páginas Webs, Buscadores y Webmasters....