Código :
<?php $archivo = "conciertos2.xml"; $abre = fopen($archivo, "w"); $texto = $_POST["texto"]; $grabar = fwrite($abre, $texto); fclose($abre); echo "estado=ok"; ?>
El "concerts.xml" original que carga es así
Código :
<?xml version="1.0" encoding="UTF-8"?> <conciertos> <concierto descripcion='111' mail='' pagina='' lugar='' fecha='10' /> <concierto descripcion='222' mail='' pagina='' lugar='' fecha='20' /> </conciertos>
Ustedes pueden probarlo en http://magicomalabarismo.com.ar/$editor. Primero carguen el archivo con CARGAR XML (lo hace directamente del Flash, sin pasar por PHP). Los botones son así:
A: adiciona un nodo al principio de la lista
X: borra el nodo
E: edita el nodo
T y Tn tira "trace", no los usen.
Noten los campos de abajo, el de arriba muestra cómo se va editando el XML y el de abajo cómo es el XML original cargado... y cómo queda después de guardarlo (lo hace leyendo como texto desde Flash el archivo XML).
El editor hasta acá anda perfecto, pero cuando grabo el XML a "conciertos2.xml", se graba mal, algo así (que también lo pueden ver en el campo de abajo):
Código :
<?xml version=\'1.0\' encoding=\'UTF-8\'?> <conciertos> <concierto descripcion=\"000\" mail=\"\" pagina=\"\" lugar=\"\" fecha=\"00\" /> <concierto descripcion=\"111\" mail=\"\" pagina=\"\" lugar=\"\" fecha=\"10\" /> <concierto descripcion=\"222\" mail=\"\" pagina=\"\" lugar=\"\" fecha=\"20\" /> </conciertos>
Las comillas aparcen con la barra invertida adelante (secuencia de escape). Después, Flash no puede volver a leer esas secuencias de escape.
No quiero aprender PHP o SQL ahora (algunos me dicen que es mejor trabajar así). Creo que debería haber algún comando en PHP para que cambie las secuencias de escape por las comillas. Si soluciono esto, es un buen código... a pesar que algunos me digan que es inestable trabajar así. Después lo publico en algún tutorial.
PD: si alguien se pregunta cómo hice para adicionar nodos... después de horas de ojos rojos frente al monitor y al no entender varias cosas del Flash... hacía algo así: cre un XML nuevo con un nodo igual a los otros, pero con los atributos vacíos. Lo pongo al principio de la lista con "insertBefore" y antes de editarlo (ACÁ VIENE LO BIZARRO)... creo un String con todo el XML (con "<?xml version="1.0" encoding="UTF-8"?><conciertos>" adelante, uso un "for" para sumarle todos los nodos, incluido el nuevo y por último sumo "</conciertos>"). Borro el XML anterior y creo uno nuevo con el String creado. Esta fue la solución para sumarle nodos, pero lo hice porque no entendí porqué Flash insertaba bien el primer nodo, pero hacía desastre con los siguientes.