ola, bom eu fiz um script parecido com esse que você quer so que usando banco mysql. da uma olhada ai e quem sabe você n aproveita alguam coisa! espero ter ajudar falou Script.................................................................................... //CONECTA AO BANCO DE DADOS $conn = @mysql_connect("localhost", "","") or die("ERRO NA CONEXÃO"); //SELECIONA A BASE DE DADOS A SER UTILIZADA $db = @mysql_select_db("banco", $conn) or die("ERRO NA SELEÇÃO DA BASE DE DADOS"); //SQL $sql = @mysql_query(" SELECT A.ID, A.NOME, A.EMAIL FROM contatos A") or die("ERRO NO SQL"); //TOTAL DE LINHAS AFETADAS PELA CONSULTA $row = mysql_num_rows($sql); //VERIFICA SE A PESQUISA RETORNOU ALGUMA LINHA if($row > 0) { //ARQUIVO $arquivo = "contato.xml"; //ABRE O ARQUIVO(SE NÃO EXISTIR, CRIA) $ponteiro = fopen($arquivo, "w"); //ESCREVE NO ARQUIVO XML fwrite($ponteiro, "<?xml version=\"1.0\"?>\r\n"); fwrite($ponteiro, "<agenda>\r\n"); for($i=0; $i<$row; $i++) { //PEGA OS DADOS DO SQL $id = mysql_result($sql,$i,"A.ID"); $nome = mysql_result($sql,$i,"A.NOME"); $email= mysql_result($sql,$i,"A.EMAIL"); //MONTA AS TAGS DO XML $conteudo = "<contato>\r\n"; $conteudo .= "<id>$id</id>\r\n"; $conteudo .= "<nome>$nome</nome>\r\n"; $conteudo .= "<email>$email</email>\r\n"; $conteudo .= "</contato>\r\n"; //ESCREVE NO ARQUIVO fwrite($ponteiro, $conteudo); }//FECHA FOR //FECHA A TAG AGENDA fwrite($ponteiro, "</agenda>"); //FECHA O ARQUIVO fclose($ponteiro); //MENSAGEM echo "O arquivo <b>".$arquivo."</b> foi gerado com SUCESSO !"; }//FECHA IF($row) ?>