Ejemplo 1: XML Básico
La estructura fundamental de un documento XML con datos simples
🎯 ¿En qué consiste este ejemplo?
Este ejemplo interactivo genera, en tiempo real, un documento XML válido a partir de los datos
que introduzcas en el formulario. Cada vez que añades un libro, PHP construye un nuevo
elemento <libro> dentro del elemento raíz <biblioteca>
usando la extensión SimpleXML, y te muestra el XML resultante ya formateado.
Así puedes ver, paso a paso, cómo cada dato que escribes se traduce en una etiqueta XML.
Añade un libro a la biblioteca
XML generado en tiempo real
<?xml version="1.0"?>
<biblioteca>
<libro>
<titulo>El Quijote</titulo>
<autor>Miguel de Cervantes</autor>
<anio>1605</anio>
</libro>
</biblioteca>
📖 Explicación del Código
Código PHP Completo
<?php
$xml = new SimpleXMLElement('<biblioteca/>');
foreach ($libros as $libro) {
$nodoLibro = $xml->addChild('libro');
$nodoLibro->addChild('titulo', $libro['titulo']);
$nodoLibro->addChild('autor', $libro['autor']);
$nodoLibro->addChild('anio', $libro['anio']);
}
echo $xml->asXML();
?>
📝 Crear el elemento raíz
¿Qué hace? Crea un documento XML nuevo cuyo único elemento raíz es <biblioteca>. Todo XML necesita exactamente un elemento raíz que envuelva al resto.
💡 Concepto: SimpleXML
SimpleXML es la forma más sencilla de trabajar con XML en PHP: convierte el documento en un objeto navegable, muy cómodo para lectura y creación básica.
📝 Añadir elementos hijos
$nodoLibro->addChild('titulo', $libro['titulo']);
¿Qué hace? addChild() crea un nuevo elemento dentro del nodo sobre el que se llama. Primero creamos <libro> dentro de <biblioteca>, y luego <titulo>, <autor> y <anio> dentro de <libro>.
¿Por qué así? Esta es la esencia de XML: los datos se organizan en una jerarquía de elementos, no en una lista plana.
📝 Exportar el XML
¿Qué hace? Convierte el objeto SimpleXML de nuevo a texto XML, incluyendo la declaración <?xml version="1.0"?>. Es lo que este ejemplo formatea y te muestra en pantalla.
🎯 Conceptos Clave Aprendidos
Elemento Raíz
- Un XML solo puede tener un elemento raíz
- Todos los demás elementos van dentro de él
- Aquí es
<biblioteca>
Jerarquía de Elementos
- Cada
<libro>es hijo de<biblioteca> <titulo>,<autor>y<anio>son hijos de<libro>- La anidación representa relaciones entre datos
SimpleXML en PHP
new SimpleXMLElement()crea el documentoaddChild()añade nodosasXML()exporta el resultado como texto
💪 Ejercicio Práctico
Amplía la biblioteca XML
Prueba estos cambios para reforzar lo aprendido:
- Añade 3 libros distintos usando el formulario y observa cómo crece el XML
- Piensa qué nuevo campo añadirías (por ejemplo
<genero>) y en qué nivel de la jerarquía iría - Escribe a mano, en un papel, el XML equivalente para tu libro favorito
- Compara: ¿qué pasaría si
<titulo>estuviera fuera de<libro>?
Añadir un campo "género"
$nodoLibro->addChild('titulo', $libro['titulo']);
$nodoLibro->addChild('autor', $libro['autor']);
$nodoLibro->addChild('anio', $libro['anio']);
$nodoLibro->addChild('genero', $libro['genero']); // nuevo campo, mismo nivel que los anteriores
El nuevo campo va al mismo nivel que titulo, autor y anio, porque describe una propiedad más del mismo libro, no de la biblioteca completa.