Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Ola pessoal boa noite, estou com uma dúvida no que diz respeito a geração de um arquivo xml com dados advindos do MySQL.
Queria uma opinião de vocês de como eu deveria implementar isso.
Eu quero que os dados sejam atualizados dinamicamente no XML assim que for inserido um registro no MySQL. Só que com isso terei muito mais trabalho, pois toda vez que alterar dados do MySQL terei que alterar no XML tambem, a mesma coisa é com a remoção.
Existe alguma outra forma melhor de fazer isso sem ter que ficar toda vez atualizando o XML quando muda ou remove algum registro no MySQL?
Eu sugiro que você gere um XML baseado no que tem no banco.
Talvez seja mais simples gerar um XML novo sempre que ocorra alguma alteração no banco. É mais simples do que gerar uma rotina de "diff", digamos assim.
entendi, alguem tem idéia de como faz isso, gerar um XML novo sempre que ocorra uma alteração no banco.
Veja esse exemplo
Ola Rogério Santana eu testei o exemplo que você recomendou, ele gera o xml certinho, só que ele não cria um arquivo xml físico, ele está no modo mod_rewrite. Existe algum modo para que crie esse arquivo fisicamente?
Eu não entendi o que você diz sobre criar fisicamente.
Só você criar o arquivo xml.php, ou você se refere a criar esse arquivo caso o mesmo não exista?
Essa maneira de gerar RSS é mais manual.
Você pode utilizar a extensão SimpleXML para gerar o XML de maneira mais automatizada e orientada a objetos, tornando a manutenção mais simples. No final você pode mostrar na tela ou gravar um arquivo.
Se quiser aproveitar o código que você já tem, você pode gerar todo esse XML da forma como está fazendo, pode guardar tudo dentro do buffer e colocar em um arquivo, como nesse exemplo no meu blog: Entendendo pra que serve ob_start(), ob_end_flush(), ob_get_contents() e afins.
Boa sorte!
É pra gerar sitemaps?
Se sim, é só fazer uma página PHP que seja lida como XML. Todas as saídas e headers deverão ser como de um XML, com as vantagens de poder fazer consultas em banco, etc e tal.
Exemplo que montei rapidinho:
<?
header("Content-type: application/xml");
echo "<?xml version='1.0' encoding='UTF-8'?>";
?><url>
<loc>[http://www.seusite.com.br](http://www.seusite.com.br)
<changefreq>monthly</changefreq>
<priority>1.00</priority>
</url>
<?php
/$resultado = sua consulta;/
if($resultado){
foreach($resultado as $registro){
echo "<url>
<loc>[http://www.seusite.com.br/](http://www.seusite.com.br/)".$registro['nomePagina']."</loc>
<changefreq>monthly</changefreq><priority>1.00</priority>
</url>";
}
}
?>
</urlset>Pelo que entendi, ele quer gravar um arquivo com esse conteúdo.
Sigo com a sugestão de usar SimpleXML pra gerar o arquivo do zero ou usar o output buffer pra redirecionar tudo pra um arquivo.
Vide minha última postagem.
sim, é porque quero gerar um xml com os dados do banco e toda vez que tenha uma atualização no banco de dados, atualizar no XML também, para que outra aplicação possa ler esses dados do XML.
Então faz isso que te falei. Sempre que atualizar o banco, roda uma rotina que recria o XML e grava ele no arquivo.
então toda vez que remover, alterar ou cadastrar algo sobrescrevo o xml? é isso
Só não entendi o lance de dinamicamente.
O XML vai ficar sempre aberto no navegador?
ou você abre ele e visualiza as ultima informação do banco?