
Creo que no se entendío.
Quiero hacer un editor de un archivo xml, el cual te recupere la información escrita y por medio de un form modificar los datos o añadir nuevos.
La muestra está ahí, pero no escribe nada, y no recupera bien la información de los nodos !
Help !!! ya llevo una semana con ello y no le hayo.
Código PHP:
<h1>Escribir noticias</h1>
<form name="form1" id="form1" method="post" action="<?=$_SERVER['PHP_SELF'] ?>">
<?
// fichero con el cuerpo en xml
$file = "noticias.xml";
// Acción que hace cuando encuentra la primera etiqueta de un elemento.
function start_element($parser, $name, $attribs){
while(list($key,$value)=each($attribs))
switch ($key) {
case 'titulo':
$titulo=$value;
?>
<p>Titulo: <input type="text" name="titulo" id="titulo" value="<? echo "$titulo" ?>" /></p>
<?
break;
case 'url':
$liga=$value;
?>
<p>Url: <input type="text" name="url" id="url" value="<? echo "$liga" ?>" /></p>
<?
break;
}
}
// Acción para cuando encuentre el final de una etiqueta de un elemento.
function end_element($parser, $name){
}
// Recuperar un dato.
function character_data($parser, $data){
trim ($data, "\r\n");
if ($data == "") {
echo "";
}
else {
$texto=$data;
id="titulo\" value=\"$data\" /></p>";
?>
<p>Noticia: <input type="text" name="noticia" id="noticia" value="<? echo "$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("\n<p>\"$file\" does not exist.</p>\n</body>\n</html>");
if(!($handle = fopen($file, "r")))
die("<p>Cannot open \"$file\".</p>\n</body>\n</html>");
while($contents = fread($handle, 4096))
xml_parse($xml_parser, $contents, feof($handle));
fclose($handle);
xml_parser_free($xml_parser);
if(isset($_POST['Submit'])) {
$cont="<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>\r\n<noticias>\r\n";
$cont.="<noticia titulo=\"$titulo\" url=\"$liga\">$texto</noticia>\r\n";
$cont.="</noticias>";
$abrir=fopen("noticias.xml", "w");
fwrite($abrir, $cont);
fclose($abrir);
}
?>
<p><input type="submit" name="Submit" value="Agregar noticias" /></p>
</form>