F-gos 0 Denunciar post Postado Agosto 11, 2010 Pessoal boa tarde! estou com o seguinte problema, estou gerando um xml atraves do banco de dados e quando clico para visualiza-lo no browser ele aparece um erro. veja o link Clique aqui . Para gerar a estrutura do xml estou utilizando como base um tutorial do imasters. segue o codigo: <? /* Conectamos ao MySQL */ $connection = mysql_connect("localhost", "user", "senha") or die ('Erro ao Conectar ao Banco de dados'); /* Selecionamos o Banco de Dados */ $db = mysql_select_db("banco") or die ("Não foi possível localizar o banco de dados"); /* Buscamos o nome, email e comentarios da tabela guestbook */ $consulta = mysql_query("SELECT id,nome_generico,nome_cientifico,aqua_min1,habitat,familia,ph_min,ph_max,temp_min,temp_max,gh_min,gh_max,manutencao,agressividade,alimentacao,caracteristicas,reproducao,foto,fonte FROM peixes WHERE categoria LIKE '1' ORDER BY id DESC"); /* Retorna o número de linhas do resultado */ $row=mysql_num_rows($consulta); /* Verificamos se retornou algum resultado */ if($row>0){ /* Manda a mensagem para o Flash */ print "&erroMensagem=0"; /* Começamos a criar o arquivo XML */ $conteudo ='<?xml version="1.0" encoding="ISO-8859-1"?> <dados> <peixes>'; /* Para cada item retornado */ for($i=0; $i<$row; $i++) { /* Recuperamos os Nomes */ $nome_generico = mysql_result($consulta,$i,"nome_generico"); $nome_cientifico = mysql_result($consulta,$i,"nome_cientifico"); $aqua_min1 = mysql_result($consulta,$i,"aqua_min1"); $habitat = mysql_result($consulta,$i,"habitat"); $familia = mysql_result($consulta,$i,"familia"); $ph_min = mysql_result($consulta,$i,"ph_min"); $ph_max = mysql_result($consulta,$i,"ph_max"); $temp_min = mysql_result($consulta,$i,"temp_min"); $temp_max = mysql_result($consulta,$i,"temp_max"); $gh_min = mysql_result($consulta,$i,"gh_min"); $gh_max = mysql_result($consulta,$i,"gh_max"); $manutencao = mysql_result($consulta,$i,"manutencao"); $agressividade = mysql_result($consulta,$i,"agressividade"); $alimentacao = mysql_result($consulta,$i,"alimentacao"); $caracteristicas = mysql_result($consulta,$i,"caracteristicas"); $reproducao = mysql_result($consulta,$i,"reproducao"); $foto = mysql_result($consulta,$i,"foto"); $fonte = mysql_result($consulta,$i,"fonte"); /* Inserimos os valores recuperados nas respectivas tags */ $conteudo.='<peixe fotop="'.$foto.'" foto="'.$foto.'" generico="'.$nome_generico.'" cientifico="'.$nome_cientifico.'" aquario="'.$aqua_min1.'" habitat="'.$habitat.'" familia="'.$familia.'" phmin="'.$ph_min.'" phmax="'.$ph_max.'" temp_min="'.$temp_min.'" temp_max="'.$temp_max.'" gh_min="'.$gh_min.'" gh_max="'.$gh_max.'" manutencao="'.$manutencao.'" agressividade="'.$agressividade.'" alimentacao="'.$alimentacao.'" caracteristicas="'.$caracteristicas.'" reproducao="'.$reproducao.'" fonte="'.$fonte.'"></peixe>'; } /* Fechamos a tag guest */ $conteudo.= '</peixes></dados>'; /* Se existir, abrimos o arquivo guest.xml para leitura e escrita */ /* Se não existir criamos o arquivo guest.xml */ $ponteiro = fopen("peixes_cat0.xml", "w"); /* Escremos o conteúdo dentro do arquivo selecionado */ /* Codificamos para UTF8 os campos para não dar problemas com acentuação */ fwrite($ponteiro, utf8_decode($conteudo)); /* Fechamos o arquivo */ fclose($ponteiro); /* Se não retornou nenhum resultado */ } else { /* Manda a mensagem de erro para o Flash */ // print "&erro=Não existe nenhum registro no banco!&erroMensagem=1"; } ?> Alguém pode me dizer oq esta gerando esse erro???? Compartilhar este post Link para o post Compartilhar em outros sites
Snakepit 0 Denunciar post Postado Agosto 11, 2010 Amigo, o erro diz que o seu XML está mal formado. Olhando o XML gerado encontrei uma virgula, sinais e até mesmo acentuações gráficas nos nomes dos atributos, e isto é o que gera o erro. Em um dos itens o atributo caracteristica se confundiu com demais atributos. acredito que a informação que veio do banco de dados tinha uma aspa que acabou fechando o atributo anterior e gerando outro incorreto. Dê uma olhada em http://www.w3schools.com/xml/default.asp, revise seu código e corrija estes erros. Compartilhar este post Link para o post Compartilhar em outros sites
F-gos 0 Denunciar post Postado Agosto 12, 2010 OK! Snakepit vou revisar o processo. Obrigado. OK! revisado e funcionando.... uma outra duvida é a seguinte.... tem como eu fazer com que esse arquivo.php que vai no banco e gera o xml faça isso sozinho a cada 5 minutos por exemplo??? Compartilhar este post Link para o post Compartilhar em outros sites