Bueno, mas o menos creo que debe ser algo así, pero no funciona correctamente:
Código PHP:
// Establecemos conexion
$fo_list = fopen("$archivo", "r");
while (!feof($fo_list)) {
$cadena .= fgets($fo_list, 4096);
}
fclose ($fo_list);
//Buscamos el contenido de la categoria
$comprobar = '/<categoria name="'.$_GET[categoria].'">(.*?)<\/categoria>/is';
array ($resultado);
preg_match_all ($comprobar, $cadena, $resultado);
$xml = $resultado[1][0];
// Añadimos contenido
$add = "<item><titulo>Nuevo Titulo</titulo><url>http://www.url.com</url></item>";
$remplazo = $xml.$add;
$general = '<categoria name="'.$_GET[categoria].'">'.$remplazo.'</categoria>';
$cadena = str_replace($cadena, $general, $cadena);
Pero me parece un poco chapucero el codigo, ¿alguien sabe como hacerlo mas limpio?