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 está desarrollando 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, busque la 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, busque la 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.