Los últimos tutoriales de desarrollo web
 

PHP SimpleXML Analizador


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.