Pregunta

He creado un archivo XML usando el XML simple de PHP, guardé el archivo. Al abrir el archivo en PHP usando Fopen e imprimir el contenido. Mi XML se ve así: (ver más abajo)

<?xml version="1.0" encoding="UTF-8"?>
<home><orderList><delivery_cost>0.00</delivery_cost><delivery_surname>TEST</delivery_surname><delivery_postcode>1234</delivery_postcode><status>1</status></orderList></home>

Quiero que el archivo XML se vea todo sangrado y en nuevas líneas para cada elemento. ¿Alguien sabe cómo hacer esto?

Gracias

¿Fue útil?

Solución

Puedes hacer esto usando el formatOutput propiedad de DOMDocument.

Guardar su XML así, suponiendo que su XML esté en una variable llamada $yourXML, y desea guardarlo en un archivo en $xmlFilePath:

$dom = new DOMDocument();
$dom->loadXML($yourXML);
$dom->formatOutput = true;
$formattedXML = $dom->saveXML();

$fp = fopen($xmlFilePath,'w+');
fwrite($fp, $formattedXML);
fclose($fp);

Código adaptado de aquí.

Otros consejos

Esto se llama "Pretty Printing" y SimplexML no hace eso. Si busca en Stack Overflow y en otros lugares en la web, encontrará soluciones personalizadas que lo hagan.

La impresión bonita es buena para la visulación, pero No recomiendo guardar documentos en ese formato.

Si todavía estás buscando una impresora bonita, puedes intentarlo Simplificar's asprettyxml ()

include 'SimpleDOM.php';

$home = simpledom_load_string('<?xml version="1.0" encoding="UTF-8"?>
<home><orderList><delivery_cost>0.00</delivery_cost><delivery_surname>TEST</delivery_surname><delivery_postcode>1234</delivery_postcode><status>1</status></orderList></home>');

echo $home->asPrettyXML();

echo " n"; Para una nueva línea en XML

ob_start (); eco ' ' . " n" ;?>

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top