SimpleXML es una extensión de PHP que nos permite manipular y obtener datos XML fácilmente.
El Analizador SimpleXML
SimpleXML es un analizador basado en árbol.
SimpleXML proporciona una manera fácil de obtener el nombre de un elemento, atributos y contenido textual si sabe estructura o el diseño del documento XML.
SimpleXML convierte un documento XML en una estructura de datos que se pueden recorrer como una colección de matrices y objetos.
En comparación con el DOM o el analizador Expat SimpleXML toma menos líneas de código para leer datos de texto de un elemento.
Instalación
A partir de PHP 5, las funciones SimpleXML son parte del núcleo de PHP. No se requiere ninguna instalación para usar estas funciones.
PHP SimpleXML - Leer De Cadena
El PHP simplexml_load_string() la función se utiliza para leer datos XML de una cadena.
Supongamos que tenemos una variable que contiene datos XML, así:
$myXMLData =
"<?xml version='1.0' encoding='UTF-8'?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>";
El siguiente ejemplo muestra cómo utilizar el simplexml_load_string() función para leer datos XML de una cadena:
Ejemplo
<?php
$myXMLData =
"<?xml version='1.0' encoding='UTF-8'?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>";
$xml=simplexml_load_string($myXMLData) or die("Error: Cannot create
object");
print_r($xml);
?>
Ejecutar ejemplo » La salida del código anterior será:
SimpleXMLElement Object ( [to] => Tove [from] => Jani [heading] => Reminder
[body] => Don't forget me this weekend! )
Control de errores Consejo: Utilice la funcionalidad libxml para recuperar todos los errores XML cuando la carga del documento y luego iterar sobre los errores. El siguiente ejemplo intenta cargar una cadena XML dañado:
Ejemplo
<?php
libxml_use_internal_errors(true);
$myXMLData =
"<?xml
version='1.0' encoding='UTF-8'?>
<document>
<user>John Doe</wronguser>
<email>[email protected]</wrongemail>
</document>";
$xml = simplexml_load_string($myXMLData);
if ($xml
=== false) {
echo "Failed loading XML: ";
foreach(libxml_get_errors() as $error) {
echo "<br>" , $error->message;
}
} else {
print_r($xml);
}
?>
Ejecutar ejemplo » La salida del código anterior será:
Failed loading XML:
Opening and ending tag mismatch: user line 3 and
wronguser
Opening and ending tag mismatch: email line 4 and wrongemail
PHP SimpleXML - Leer desde archivo
El PHP simplexml_load_file() la función se utiliza para leer datos XML desde un archivo.
Supongamos que tenemos un archivo XML denominado " note.xml ", que se ve así:
<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
El siguiente ejemplo muestra cómo utilizar el simplexml_load_file() función para leer datos XML desde un archivo:
Ejemplo
<?php
$xml=simplexml_load_file("note.xml") or die("Error: Cannot create
object");
print_r($xml);
?>
Ejecutar ejemplo » La salida del código anterior será:
SimpleXMLElement Object ( [to] => Tove [from] => Jani [heading] => Reminder
[body] => Don't forget me this weekend! )
Consejo: En el siguiente capítulo se muestra cómo obtener / recuperar valores de nodo de un archivo XML con SimpleXML!
Más PHP SimpleXML
Para obtener más información acerca de las funciones PHP SimpleXML, visite nuestro PHP SimpleXML referencia.