Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/08/2009, 10:06
Avatar de mayid
mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
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']);

Última edición por GatorV; 26/08/2009 a las 19:17