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)
?>

