Cómo leer un XML con PHP

Aquí tenemos un ejemplo de como leer un archivo XML que Contiene un grupo de personas cada una con su nombre. Su estructura es sencilla:

  • Personas
    • Persona
      • Nombre

El código es el siguiente:

<?php
$xmlstr = <<<XML
<?xml version='1.0' standalone='yes'?>
<personas>
<persona>
<nombre>Adolfo</nombre>
</persona>
<persona>
<nombre>Laura</nombre>
</persona>
<persona>
<nombre>Jorge</nombre>
</persona>
</personas>
XML;


$xml = new SimpleXMLElement($xmlstr);

foreach ($xml->children() as $persona)
{
    echo "Persona: " . $persona->nombre . "<br>";
}
?>

Como vemos generamos el XML con la clase SimpleXMLElement de PHP. Una vez está creado, utilizaremos la función children() en el objeto creado para recoger los elementos, que en este caso recogerá los elementos "persona" y luego accedemos al nombre con "->" y el nombre del elemento que queremos mostrar.

Más información de SimpleXMLElement: https://es1.php.net/manual/es/class.simplexmlelement.php

2 Respuestas

  1. Na

    La función no lee un archivo cuando dentro de uno de los elementos hay un &. ¿Hay alguna forma de resolver esto?

    • Es un tema de la codificación del archivo estás guardándolo con espacios o caracteres especiales que te muestran && algo así primero si obtienes la informacion de un externo $resultado = html_entity_decode($response); utilizar esta función de PHP para decodificar el archivo, luego usas la función $resultado = str_replace(“<“, “<", $resultado); para con ello reemplazar los caracteres especiales.

Responder a Na