Yo lo he podido resolver con la mezcla de un montón de consultas por el foro y por ahí. Así que gracias a todos.
Este fichero xml es procesado en flash y muestra las noticias con movimiento, de arriba abajo, también se pueden poner enlaces, etc. A mi me ha sido muy útil.
Tengo un fichero xml con noticias que proceso desde un flash, El fichero se llama noticas1.xml
Código:
Lo que necesito es poder editar las noticias desde un formulario y que se puedan cambiar y volver a grabar en el xml.<noticias> <grupo fecha="las 10 hoy no ha podido ser " nombre="viste te " explica="y lo verás"/> <grupo fecha="febrero " nombre="toma moreno " explica="A pedir de boca"/> <grupo fecha="marzo " nombre="El mejor " explica="ayyyyy"/> <grupo fecha="abril " nombre="lunes " explica="Te informaremos"/> <grupo fecha="mayo " nombre="Fiestas " explica="Jamones y embutido"/> <grupo fecha="junio " nombre="Concursos " explica="come máx"/> <grupo fecha="julio " nombre="sippppp " explica="hardoón"/> </noticias>
Este primer fichero lo que hace es introducir los valores de los campos del fichero xml en un formulario dinámico donde los nombres de los campos son dato0, dato1,etc
Código:
Luego al darle al botón enviar, se llama al fichero proceso3.php que es el siguiente:<? $fichero = 'noticias1.xml'; $xml = simplexml_load_file($fichero) or die ('Unable to load XML file!'); echo '<form id="form1" name="form1" method="post" action="proceso3.php">'; for ($i=0;$i<7;$i++) // codigo no depurado, debería saber que hay 7 noticias, { echo "<br>fecha"; echo '<input type="text" name="dato'.($i*3+0).'" id="fech" value="'.$xml->grupo[$i]['fecha']. '" />'; echo '<input type="text" name="dato'.($i*3+1).'" id="fech" value="'.$xml->grupo[$i]['nombre']. '" />'; echo '<input type="text" name="dato'.($i*3+2).'" id="fech" value="'.$xml->grupo[$i]['explica']. '" />'; } echo '<input type="submit" name="Enviar" id="Enviar" value="Enviar" />'; echo "</form>"; ?>
Código:
<? $archivo = "datos.xml"; // grabo en otro archivo en vez de noticias1.xml, por si las moscas if ($id = fopen ($archivo, "w+")) { $i=1; // grabamos la cabecera fputs($id,"<noticias>\n"); /mirar arriba el original foreach($_POST as $nombre_campo => $valor) { if($nombre_campo!="Enviar") // el campo enviar no se graba { // las siguientes van grabando los codigos necesarios para el xml // es un poco de lio, seguro que se puede hacer más legible if ($i%3 == 1) fputs($id,"<grupo fecha=\""); if ($i%3 == 2) fputs($id," \" nombre=\""); if ($i%3 == 0) fputs($id," \" explica=\""); //la siguiente graba el valor del campo del formulario $asignacion = $valor; fputs ($id, $asignacion); if ($i%3 == 0) fputs ($id,"\"/>\n"); $i++; } } fputs($id,"</noticias>"); } else echo "no puedo"; fclose ($id) ?>