[PHP]Leer XML con SimpleXML

Standard


Una de las cosas mas estúpidas y de noob que he echo programando, es hacer una función que lee los datos con estructura XML, como la que ven acá abajo…

public function getTitle($data)
    {
        $startString = '<author>';
        $endString = '</author>';
        $tempString = strstr($data, $startString);
        $endLocation = strpos($tempString, $endString);
        $title = substr($tempString, 0, $endLocation);

        if (empty($title))
        {
            $title = false;
        }
        else
        {
            $title = substr($title,strlen($startString));
        }

        return $title;
    }

Esta función busca el valor dentro de las etiquetas <author></author>, y en caso de no encontrarlo, devuelve false. Si bien esta función funciona (valga la redundancia), no es de lo mas eficiente que podemos hacer.

Una de las formas de manejar XML de forma nativa es SimpleXML, una extensión en PHP que proporciona un juego de herramientas muy simple y fácilmente usable para convertir XML en un objeto que pueda ser procesado con selectores normales de propiedades e iteradores de array.

Si. Manejemos toda la estructura XML como ya sabemos (?? :D ), como un objeto!

Les voy a mostrar un ejemplo con un XML simple…

$xml_data = "<?xml version='1.0'?>
    <document>
        <date>04-05-2011</date>
        <author>Zarpele</author>
        <description>Linux and Sofware Libre</description>
        <content>Simple example for SimpleXML use with PHP</content>
    </document>";

$xml = new SimpleXMLElement($xml_data);
echo $xml->author;

Simple, Rapido y Facil, obtenemos como resultado “Zarpele”

Este ejemplo es para leer un XML desde una URL especifica, por ejemplo el feed del blog.

$xml = simplexml_load_file('http://www.zarpele.com.ar/feed/');
echo $xml->channel->title;
foreach ($xml->channel->item as $noticia) {
  echo $noticia->title;
  echo '<br/>';
}

Lo que hace este código, es imprimir el titulo del blog y todos los títulos de las entradas que están en el feed.

Mas adelante, les prometo traerle la parte 2 con un manejo mas avanzado, coméntale si te gustó.

Saludos…

More Info | http://www.php.net/manual/es/book.simplexml.php
More Info | http://conf.phpquebec.com/slides/2007/advanced_xml.pdf

FB Comentarios

5 thoughts on “[PHP]Leer XML con SimpleXML

  1. Jonathan Espinosa

    Muy buena entrada y me gustaria ver si tu me puedes ayudar con un proyecto que tengo, ya logre leer el archivo xml desde un servidor remoto y presentar la informacion en una tabla, mi problema es que obtengo 200 filas de datos y no se como hacer para paginar todo eso y que me muestre solo 10 filas en cada pagina, en el codigo tengo el foreach pero como puedo quitarlo para que yo lo pueda hacer pagina por pagina y me siga jalando la informacion que continua?.. espero me puedan ayudar.. muchas gracias.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>