Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/02/2007, 19:32
Avatar de renton
renton
 
Fecha de Ingreso: enero-2004
Ubicación: BCN (PPCC)
Mensajes: 573
Antigüedad: 20 años, 3 meses
Puntos: 1
Busqueda Insertar "registro" en XML

Hola gente,
estoy intentando crear un fichero de log XML mediante PHP y estoy teniendo algun problemilla.
El tema es el siguiente: supongamos que el fichero XML "log.xml" tiene la siguiente estructura
Cita:
<?xml version="1.0" standalone="yes" ?>
<log>
<error>
<date>20-02-2007</date>
<sql>select * from dual</sql>
<description>bla bla bla</description>
</error>
</log>
Y que para insertar cada vez una línea de error utilizo el siguiente código:
Cita:
$xml= fopen("log.xml", "a+");

$content="<error>";
$content.="<date>".$date."</date>";
$content.="<sql>".$sql."</sql>";
$content.="<description>".$description."</description>";
$content.="</error>";

fwrite($xml, $content);
fclose($xml);
Pues bien, el problema es, básicamente, estructural: fwrite escribe al final de todo el archivo, pero lo que realmente quiero es que obviamente escriba el nuevo registro entre el último </error> y </log> (sinó el archivo quedaria bastante mal formado).

Así pues, ¿Debo recorrer todo el fichero en lugar de hacer fwrite desde el principio para, de esta forma, encontrar el lugar donde se escribe </log> y, así, escribir justo antes? (si el fichero llega a hacerse muy grande podría tardar bastante más, no?)

Qué solución me proponéis?
Mil gracias!!
__________________
"No et limites a contemplar aquestes hores que ara venen, baixa al carrer i participa.
No podran res davant un poble unit, alegre i combatiu!!"