
Asumiendo que sabemos la estructura básica de un XML, tomaré como referencia el ejemplo anterior, lo primero es declarar el XML:
$xml = new DomDocument('1.0', 'UTF-8');Podemos utilizar otras codificaciones, pero a modo de ejemplo seguiremos con utf-8. Luego de esto creamos el nodo principal o raíz:
$raiz = $xml->createElement('raiz'); $raiz = $xml->appendChild($raiz);Ahora solo nos queda rellenar dicho nodo con los sub-nodos consecuentes:
$nodo = $xml->createElement('libro'); $nodo = $raiz->appendChild($nodo);Como vemos, la forma de agregar nodos es básica y aplica para sub-nodos, por ejemplo:
$subnodo = $xml->createElement('item','texto dentro del item'); $subnodo = $nodo->appendChild($subnodo);Una vez hecho esto nuestro código esta listo, solo falta volcarlo a un archivo físico:
$xml->formatOutput = true; $xml->saveXML(); $xml->save('ruta/archivo.xml');Aunque en esta parte podemos variar un poco, si queremos mostrar el XML tal cual como fue creado solo hace falta guardar la salida en una variable y utilizar la función htmlentities ($ xml ):
$el_xml = $xml->saveXML(); echo htmlentities($el_xml);Y si queremos no solo guardarlo, sino mostrarlo una vez finalice el proceso, podemos combinar ambas cosas y tener algo como esto:
<?php crear(); //Creamos el archivo leer(); //Luego lo leemos //Para crear el archivo function crear(){ $xml = new DomDocument('1.0', 'UTF-8'); $biblioteca = $xml->createElement('biblioteca'); $biblioteca = $xml->appendChild($biblioteca); $libro = $xml->createElement('libro'); $libro = $biblioteca->appendChild($libro); // Agregar un atributo al libro $libro->setAttribute('seccion', 'favoritos'); $autor = $xml->createElement('autor','Paulo Coelho'); $autor = $libro->appendChild($autor); $titulo = $xml->createElement('titulo','El Alquimista'); $titulo = $libro->appendChild($titulo); $anio = $xml->createElement('anio','1988'); $anio = $libro->appendChild($anio); $editorial = $xml->createElement('editorial','Maxico D.F. - Editorial Grijalbo'); $editorial = $libro->appendChild($editorial); $xml->formatOutput = true; $el_xml = $xml->saveXML(); $xml->save('libros.xml'); //Mostramos el XML puro echo "<p><b>El XML ha sido creado.... Mostrando en texto plano:</b></p>". htmlentities($el_xml)."<br/><hr>"; } //Para leerlo function leer(){ echo "<p><b>Ahora mostrandolo con estilo</b></p>"; $xml = simplexml_load_file('libros.xml'); $salida =""; foreach($xml->libro as $item){ $salida .= "<b>Autor:</b> " . $item->autor . "<br/>". "<b>Título:</b> " . $item->titulo . "<br/>". "<b>Ano:</b> " . $item->anio . "<br/>". "<b>Editorial:</b> " . $item->editorial . "<br/><hr/>"; } echo $salida; } ?>
Recibe notificaciones por correo