Ya resolví la cosa a medias, no es el resultado que deseaba, pero necesitaba que esto ya quedara.
http://percepcionunitaria.org/prueba...a_noticias.php <--editor
http://percepcionunitaria.org/pruebas/noticias.swf <--lector para usuario
Pongo el código por si a alguien le interesa y si se apiada de mi ignorancia en programación. La idea era que el texto del xml quedara dentro de los input para ser editado y no fuera, pero no pude conseguirlo.
Código PHP:
<?
// concatenar las noticias
if(isset($_POST['Submit'])){
$cont=utf8_encode("<?xml version=\"1.0\" encoding=\"utf-8\" ?>\r\n<noticias>");
if(empty($texto1))
echo("");
else {
$cont.=utf8_encode("<noticia titulo=\"$titulo1\" url=\"$liga1\">$texto1</noticia>");
}
if(empty($texto2))
echo("");
else {
$cont.=utf8_encode("<noticia titulo=\"$titulo2\" url=\"$liga2\">$texto2</noticia>");
}
if(empty($texto3))
echo("");
else {
$cont.=utf8_encode("<noticia titulo=\"$titulo3\" url=\"$liga3\">$texto3</noticia>");
}
if(empty($texto4))
echo("");
else {
$cont.=utf8_encode("<noticia titulo=\"$titulo4\" url=\"$liga4\">$texto4</noticia>");
}
if(empty($texto5))
echo("");
else {
$cont.=utf8_encode("<noticia titulo=\"$titulo5\" url=\"$liga5\">$texto5</noticia>");
}
if(empty($texto6))
echo("");
else {
$cont.=utf8_encode("<noticia titulo=\"$titulo6\" url=\"$liga6\">$texto6</noticia>");
}
$cont.="</noticias>";
$abrir=fopen("noticias.xml", "w");
fwrite($abrir, $cont);
fclose($abrir);
}
$file = "noticias.xml";
function start_element($parser, $name, $attribs){
while(list($key,$value)=each($attribs))
switch ($key) {
case 'titulo':
echo utf8_decode("<p><strong>Titulo:</strong> <strong><em>".$value."</em></strong><br />");
break;
case 'url':
echo utf8_decode("<strong>Liga:</strong> ".$value."<br />");
break;
}
}
function end_element($parser, $name){
}
// Recuperar un dato.
function character_data($parser, $data){
trim ($data);
echo utf8_decode("<strong>Noticia:</strong> ".$data."</p>");
}
$xml_parser = xml_parser_create('');
xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, 0);
xml_set_element_handler($xml_parser, "start_element", "end_element");
xml_set_character_data_handler($xml_parser, "character_data");
if(!file_exists($file))
die("<p>\"$file\" el archivo no existe, favor de verificar.</p>");
if(!($handle = fopen($file, "r")))
die("<p>No se puede abrir el archivo \"$file\".</p>");
while($contents = fread($handle, 4096))
xml_parse($xml_parser, $contents, feof($handle));
fclose($handle);
xml_parser_free($xml_parser);
?>
Código HTML:
<h2>Escribir noticias</h2>
<form name="form1" id="form1" method="post" action="<?//=$_SERVER['PHP_SELF'] ?>">
<input type="hidden" name="clave_admin" value="<? echo($_POST['usuario']); ?>">
<input type="hidden" name="nombre" value="<? echo($_POST['nombre']); ?>">
<div class="noticias">
<h2>Noticia 1 </h2>
<p>Título: <input type="text" name="titulo1" id="titulo1" /><br />
Liga: <input type="text" name="liga1" id="liga1" /><br />
Noticia: <textarea name="texto1" id="texto1" rows="3"></textarea></p>
</div>
<div class="noticias">
<h2>Noticia 2 </h2>
<p>Título: <input type="text" name="titulo2" id="titulo2" /><br />
Liga: <input type="text" name="liga2" id="liga2" /><br />
Noticia: <textarea name="texto2" id="texto2" rows="3"></textarea></p>
</div>
<div class="noticias">
<h2>Noticia 3 </h2>
<p>Título: <input type="text" name="titulo3" id="titulo3" /><br />
Liga: <input type="text" name="liga3" id="liga3" /><br />
Noticia: <textarea name="texto3" id="texto3" rows="3"></textarea></p>
</div>
<div class="noticias">
<h2>Noticia 4 </h2>
<p>Título: <input type="text" name="titulo4" id="titulo4" /><br />
Liga: <input type="text" name="liga4" id="liga4" /><br />
Noticia: <textarea name="texto4" id="texto4" rows="3"></textarea></p>
</div>
<div class="noticias">
<h2>Noticia 5 </h2>
<p>Título: <input type="text" name="titulo5" id="titulo5" /><br />
Liga: <input type="text" name="liga5" id="liga5" /><br />
Noticia: <textarea name="texto5" id="texto5" rows="3"></textarea></p>
</div>
<div class="noticias">
<h2>Noticia 6 </h2>
<p>Título: <input type="text" name="titulo6" id="titulo6" /><br />
Liga: <input type="text" name="liga6" id="liga6" /><br />
Noticia: <textarea name="texto6" id="texto6" rows="3"></textarea></p>
</div>
<p><input type="submit" name="Submit" class="boton" value="Agregar noticias" />
</p>
</form>