Pasar al contenido principal
Alexys Lozada
José Luján
Manuel Rodriguez
José Luján
Luis Avilés
Álvaro Felipe
José Luján
Beto Quiroga
Jonathan MirCha
Jonathan MirCha
Álvaro Felipe
Alexys Lozada, Álvaro Felipe, Jonathan MirCha
Beto Quiroga
Alexys Lozada
Alexys Lozada
José Luján
Álvaro Felipe
Álvaro Felipe
Jonathan MirCha
Jonathan MirCha
Alexys Lozada, José Luján
Alexys Lozada, José Luján
Alexys Lozada, José Luján
Camilo Adobe
Álvaro Felipe
José Luján
Jonathan MirCha
Álvaro Felipe
Álvaro Felipe
Beto Quiroga, Alexys Lozada
Álvaro Felipe
Juan Villalvazo
Luis Avilés
Jonathan MirCha
Jonathan MirCha
Jonathan MirCha

Cómo convertir archivos XML a objetos PHP

Algunas API, principalmente las contables, nos devuelven código XML que debemos leer para generar facturas, convirtiéndolo a PHP.

Cómo convertir archivos XML a objetos PHP

Hola gente del futuro.

Algunas API nos entregan información en formato XML, por ejemplo facturas que tenemos que leer para generar un PDF e imprimir para cumplir con sus normas contables. Los archivos XML son archivos de texto que podemos leer como cualquier txt, sin embargo, con PHP tenemos herramientas que nos facilitan las cosas.

En esta ocasión vamos a ver cómo convertir un documento XML en un objeto PHP.

Se requiere tener activa la extensión libxml, checa tu archivo php.ini.

Vamos a suponer que tenemos el archivo mi-archivo.xml en nuestro servidor:

<?xml version='1.0' standalone='yes'?>
<movies>
 <movie>
  <title>PHP: Behind the Parser</title>
  <characters>
   <character>
    <name>Ms. Coder</name>
    <actor>Onlivia Actora</actor>
   </character>
   <character>
    <name>Mr. Coder</name>
    <actor>El ActÓr</actor>
   </character>
  </characters>
  <plot>
   So, this language. It's like, a programming language. Or is it a
   scripting language? All is revealed in this thrilling horror spoof
   of a documentary.
  </plot>
  <great-lines>
   <line>PHP solves all my web problems</line>
  </great-lines>
  <rating type="thumbs">7</rating>
  <rating type="stars">5</rating>
 </movie>
</movies>

Para convertirlo en un objeto PHP usamos la función simplexml_load_file():

// checha que el archivo exista
if (file_exists('mi-archivo.xml')) {
    $xml = simplexml_load_file('mi-archivo.xml');
    print_r($xml);
} else {
    exit('No existe el archivo mi-archivo.xml');
}

El resultado que obtenemos es un objeto SimpleXMLElement:

SimpleXMLElement Object
(
    [movie] => SimpleXMLElement Object
        (
            [title] => PHP: Behind the Parser
            [characters] => SimpleXMLElement Object
                (
                    [character] => Array
                        (
                            [0] => SimpleXMLElement Object
                                (
                                    [name] => Ms. Coder
                                    [actor] => Onlivia Actora
                                )

                            [1] => SimpleXMLElement Object
                                (
                                    [name] => Mr. Coder
                                    [actor] => El Actor
                                )

                        )

                )

            [plot] => 
   So, this language. It's like, a programming language. Or is it a
   scripting language? All is revealed in this thrilling horror spoof
   of a documentary.
  
            [great-lines] => SimpleXMLElement Object
                (
                    [line] => PHP solves all my web problems
                )

            [rating] => Array
                (
                    [0] => 7
                    [1] => 5
                )

        )

)

Entonces podemos acceder a cualquiera de las propiedades, por ejemplo, para obtener el título de la película:

$xml->movie[0]->title;

El cero es porque en nuestro XML podemos tener múltiples películas, te invito a probar, agrega tantas películas como quieras y crea el código necesario para imprimir el listado de películas, es decir, sus títulos, comparte tu solución en Twitter con mención a @danielromeroauk.

La práctica hace al maestro, espero que me dejes ver tu solución. :)

Eso es todo por ahora gente del futuro, nos leemos en el siguiente artículo.

Suscríbete al blog de EDteam

Ingresa tu correo electrónico para recibir nuestro boletín semanal