Hola. Tengo creado un xml via php, que espacia muy bien los tags xml, con saltos de linea. Asi:
<galeria>
<item>
<nivel2>
</nivel2>
</item>
<item>
<nivel2>
</nivel2>
</item>
</galeria>
En cambio, al actualizar con un nuevo item, el DOM escribe asi:
<item> <nivel2> </nivel2></item>
El resultado es mucho menos leible. Y de las muuchas paginas que consulte, solo una mencionaba el problema, y de pasada.
Yo estoy guardando así:
$xml->formatOutput = true;
$xml->save($GLOBALS['archivo_xml']);
Que pasa?
Por si ayuda el dato, cargo el archivo asi:
$xml = new DOMDocument("1.0", "UTF-8");
$xml->load($archivo_xml);
Y he intentado estas dos lineas en diferentes momentos, pero no dan formato:
//$xml->preserveWhiteSpace = false;
$xml->formatOutput = true;
Lo tengo! Y les cuento, porque no hay data en otros foros y me queme las pestañas buscando solucion.
Se trata de un problema de prioridades al usar load para cargar un xml existente:
$xml = new DOMDocument();
$xml->preserveWhiteSpace = false; // ESTO ES LO IMPORTANTE!!!
$xml->load($archivo_xml);
Antes de load hay que escribir la funcion de whitespace=false
Y luego si la que da el formato ok:
$xml->formatOutput = true;
$xml->save($GLOBALS['archivo_xml']);