Tutorial PHP XML: crear, analizar, leer con ejemplo
ยฟQuรฉ es XML?
XML es el acrรณnimo de lenguaje de marcado extensible.
XML se utiliza para estructurar, almacenar y transportar datos de un sistema a otro.
XML es similar a HTML.
Utiliza etiquetas de apertura y cierre.
A diferencia de HTML, XML permite a los usuarios definir sus propias etiquetas.
ยฟQuรฉ es DOM?
DOM es el acrรณnimo de Document Object Model.
Es un estรกndar multiplataforma y neutral en el idioma que define cรณmo acceder y manipular datos en;
- HTML
- XHTML
- XML
DOM XML se utiliza para acceder y manipular documentos XML. รl ve el documento XML como una estructura de รกrbol.
Analizadores XML
Un analizador XML es un programa que traduce el documento XML en un objeto de modelo de objetos de documento (DOM) XML.
El objeto XML DOM se puede manipular usando JavaTexto, Pythony PHP, etc.
La palabra clave CDATA, que es el acrรณnimo de datos de caracteres (sin analizar), se utiliza para ignorar caracteres especiales como โโ al analizar un documento XML.
ยฟPor quรฉ utilizar XML?
- Los servicios web como SOAP y REST utilizan el formato XML para intercambiar informaciรณn. Aprender quรฉ es XML y cรณmo funciona le brindarรก una ventaja competitiva como desarrollador, ya que las aplicaciones modernas hacen un uso intensivo de los servicios web.
- Los documentos XML se pueden utilizar para almacenar los ajustes de configuraciรณn de una aplicaciรณn.
- Le permite crear sus propias etiquetas personalizadas que lo hacen mรกs flexible.
Ejemplo de documento XML
Supongamos que usted estรก desarrollandoping una aplicaciรณn que obtiene datos de un servicio web en formato XML.
A continuaciรณn se muestra un ejemplo de cรณmo se ve el documento XML.
<?xml version="1.0" encoding="utf-8"?>
<employees status = "ok">
<record man_no = "101">
<name>Joe Paul</name>
<position>CEO</position>
</record>
<record man_no = "102">
<name>Tasha Smith</name>
<position>Finance Manager</position>
</record>
</employees>
AQUร,
- โโ especifica la versiรณn xml que se utilizarรก y la codificaciรณn
- โโ es el elemento raรญz.
- โโฆโ son los elementos secundarios de administraciรณn y ventas respectivamente.
Cรณmo leer XML usando PHP
Ahora escribamos el cรณdigo que leerรก el documento XML de los empleados y mostrarรก los resultados en un navegador web. index.php
<?php
$xml = simplexml_load_file('employees.xml');
echo '<h2>Employees Listing</h2>';
$list = $xml->record;
for ($i = 0; $i < count($list); $i++) {
echo '<b>Man no:</b> ' . $list[$i]->attributes()->man_no . '<br>';
echo 'Name: ' . $list[$i]->name . '<br>';
echo 'Position: ' . $list[$i]->position . '<br><br>';
}
?>
AQUร,
- โ$xml = simplexml_load_file('employees.xml');โ utiliza la funciรณn simplexml_load_file para cargar el nombre de archivo employee.xml y asignar el contenido a la variable de matriz $xml.
- โ$lista = $xml->registro;โ Obtiene el contenido del nodo de registro.
- โfor ($i = 0; $i < count(โฆ)โฆโ es el bucle for que lee la matriz numรฉrica y genera los resultados.
- โ$lista[$i]->atributos()->man_no;โ lee el atributo man_no del elemento
- โ$lista[$i]->nombre;โ lee el valor del elemento secundario nombre
- โ$lista[$i]->posiciรณn;โ lee el valor del elemento secundario de posiciรณn
Probar nuestra aplicaciรณn
Suponiendo que guardรณ el archivo index.php en la carpeta phptus/xml, navegue hasta el URL http://localhost/phptuts/xml/index.php
Cรณmo crear un documento XML usando PHP
Ahora veremos cรณmo crear un documento XML usando PHP.
Usaremos el ejemplo anterior en el diagrama de รกrbol DOM.
El siguiente cรณdigo utiliza la clase DOMDocument incorporada en PHP para crear un documento XML.
<?php
$dom = new DOMDocument();
$dom->encoding = 'utf-8';
$dom->xmlVersion = '1.0';
$dom->formatOutput = true;
$xml_file_name = 'movies_list.xml';
$root = $dom->createElement('Movies');
$movie_node = $dom->createElement('movie');
$attr_movie_id = new DOMAttr('movie_id', '5467');
$movie_node->setAttributeNode($attr_movie_id);
$child_node_title = $dom->createElement('Title', 'The Campaign');
$movie_node->appendChild($child_node_title);
$child_node_year = $dom->createElement('Year', 2012);
$movie_node->appendChild($child_node_year);
$child_node_genre = $dom->createElement('Genre', 'The Campaign');
$movie_node->appendChild($child_node_genre);
$child_node_ratings = $dom->createElement('Ratings', 6.2);
$movie_node->appendChild($child_node_ratings);
$root->appendChild($movie_node);
$dom->appendChild($root);
$dom->save($xml_file_name);
echo "$xml_file_name has been successfully created";
?>
AQUร,
- โ$dom = nuevo DOMDocumento();โ crea una instancia de la clase DOMDocument.
- "$dom->codificaciรณn = 'utf-8';" establece la codificaciรณn del documento en utf-8
- "$dom->xmlVersion = '1.0';" especifica el nรบmero de versiรณn 1.0
- โ$dom->formatoSalida = verdadero;โ garantiza que la salida estรฉ bien formateada
- โ$root = $dom->createElement('Pelรญculas');" crea el nodo raรญz llamado Pelรญculas
- "$attr_movie_id = nuevo DOMAttr('movie_id', '5467');" define el atributo de identificaciรณn de pelรญcula del nodo Pelรญculas
- โ$child_node_element_name = $dom->createElement('ElementName', 'ElementValue')" crea el nodo secundario del nodo Pelรญculas. ElementName especifica el nombre del elemento, p. Tรญtulo. ElementValue establece el valor del nodo secundario, p. La campaรฑa.
- โ$root->appendChild($movie_node);โ agrega los elementos movie_node al nodo raรญz Pelรญculas
- โ$dom->appendChild($raรญz);โ agrega el nodo raรญz al documento XML.
- โ$dom->guardar($xml_file_name);โ guarda el archivo XML en el directorio raรญz del servidor web.
- โecho โโ . $xml_file_name . ' ha sido creado exitosamente';" crea el enlace al archivo XML.
Probar nuestra aplicaciรณn
Suponiendo que guardรณ el archivo create_movies_list en la carpeta phptuts/xml, navegue hasta el URL http://localhost/phptuts/xml/create_movies_list.php
Haga clic en el enlace movies_list_xml
Resumen
- XML es el acrรณnimo de lenguaje de marcado extensible
- XML se puede utilizar para intercambiar informaciรณn entre sistemas o almacenar ajustes de configuraciรณn de una aplicaciรณn, etc.
- DOM es el acrรณnimo de Modelo de objetos de documento. XML DOM ve el documento XML como una estructura de รกrbol
- Un analizador XML es un programa que traduce XML, un documento XML, en un documento similar a una estructura de รกrbol DOM.
- CDATA se utiliza para ignorar caracteres especiales al analizar documentos XML.
- PHP utiliza simplexml_load_file para leer documentos XML y devolver los resultados como una matriz numรฉrica
- Clase PHP DOMDocument para crear archivos XML.



