Gerando XML com PHP e MySQL

Gerando XML com atributos, utilizando PHP e MySQL

Esse Post foi movido para :

http://clares.com.br/2010/09/16/gerando-xml-com-php-e-mysql/

Desculpe pelo transtorno, aproveite para assinar o novo blog.

Marcado:, ,

15 pensamentos sobre “Gerando XML com PHP e MySQL

  1. Charles Mousinho setembro 29, 2010 às 1:43 am

    Boa noite rafael,
    gostaria de agradecer pelo suporte que me deste quanto a este seu tutorial, gracas a ele consegui resolver meu problema.
    Gostaria de agradecer tambem, pois foi atraves do seu ensinamento que vi que trabalhar com object e mais facil que com o fetch-array ;)
    Definitivamente aprendi a trabalhar com ele.

    To na espera do proximo tutorial para aprender mais.

    sorry os erros, teclado americano sux.

    • Rafael Clares setembro 29, 2010 às 1:59 am

      Charles, obrigado pelo comentário, fico feliz que tenha conseguido tirar do blog algo que pudesse aplicar em seu trabalho.
      abraços,

    • hugão outubro 26, 2012 às 11:07 am

      Realmente, depois de ler este pequeno (e excelente!!!) tutorial, percebi que trabalhar com object, ao invés de array é, sem sombra de dúvidas, uma opção muito mais legível :)…
      Boas práticas de programação é tudo :D

  2. Rafaela Sacconi maio 3, 2011 às 10:14 pm

    Ótimos posts, parabéns!

    Está muito bem explicado, está funcional… testei e deu certo de primeira. Além disso, não deixou a simplicidade de lado. Virei frequentadora do seu blog. =)

    Até mais…

  3. KARLOS setembro 7, 2011 às 5:22 am

    OK!!!!Mostrou na tela …. mas ao gerar o arquivo songs.xml não há nenhum conteúdo dentro…?????

  4. Gabriel da Vitória dezembro 28, 2011 às 8:01 pm

    Parabens Rafael, estou aplicando esse post em um trabalho meu, De muita utilidade. Porem estou tendo um problema desse tipo de não carregar os registros para dentro do songs.xml. Porem quando utiliza as tabelas descritas, passa, se mudar de tabela da bixeira.

    Erro no processamento de XML: nenhum elemento encontrado
    Posição: http://localhost/social/xml/xml.php
    Número da linha 2, coluna 2888:

    Mas se usar o firebub mostra a resposta com os registros, so que n salva. Sabe o que pode ser?

    Olha o meu Cod.
    ————————————————————–
    # Incluindo a classe de conexao
    require_once ‘mysqlcon.class.php’;
    # Instanciando a conexao MySql
    $con = new MySqlCon;
    # Instanciando o XMLWriter
    $xml = new XMLWriter;
    $xml->openMemory();
    # Definindo o encoding do XML
    $xml->startDocument( ‘1.0’ , ‘utf-8’ );
    # Primeiro elemento do XML
    $xml->startElement(“novosmembros”);
    # Query na tabela albuns
    $rs_album = mysql_query(“select * from novos_cadastros order by id_pessoa”);
    while($album = mysql_fetch_array($rs_album))
    {
    # Transformando array em objeto
    $album = (object)$album;
    # Criando elemento album
    $xml->startElement(“novomembro”);
    # Setando os atributos

    $xml->writeAttribute(“id_pessoa”, “$album->id_pessoa”);
    $xml->writeAttribute(“nome”, “$album->nome”);
    $xml->writeAttribute(“cpf”, “$album->cpf”);
    $xml->writeAttribute(“activo”, “$album->activo”);
    $xml->writeAttribute(“sexo”, “$album->sexo”);
    $xml->writeAttribute(“sit_pg”, “$album->sit_pg”);
    $xml->writeAttribute(“nivel”, “$album->nivel”);
    $xml->writeAttribute(“agencia”, “$album->agencia”);
    $xml->writeAttribute(“conta”, “$album->conta”);
    $xml->writeAttribute(“data_cadastro”, “$album->data_cadastro”);
    $xml->writeAttribute(“numero_boleto”, “$album->numero_boleto”);
    $xml->writeAttribute(“data_gerado”, “$album->data_gerado”);
    $xml->writeAttribute(“data_vencimento”, “$album->data_vencimento”);

    }
    # Fechando o elemento album
    $xml->endElement();

    # Fechando o elemento featureset
    $xml->endElement();

    # Encerrando a conexao
    $con->close();

    # Definindo cabecalho de saida
    header( ‘Content-type: text/xml’ );
    # Imprimindo a saida do XML
    print $xml->outputMemory(true);

    # Salva arquivo em disco
    $file = fopen(‘songs.xml’,’w’);
    fwrite($file,$xml->outputMemory(true));
    fclose($file);

    • Rafael Clares janeiro 5, 2012 às 2:19 am

      Gabriel, desculpe a demora em responder, estive de mudança e fiquei sem net.
      Me envie o código para rafadinix@gmail.com para eu avaliar.
      Obs: nunca envie dúvidas para esse email, as dúvidas devem ser sanadas no post. Abs

      • chebaca janeiro 5, 2012 às 1:22 pm

        Rafael, obrigado pelo retorno, eu consegui regar o XML, porem tive de mudar toda a estrutura do meu sistema e trabalhar em webservices,

        Mesmo assim agradeço pela atenção. Sobre WebServices Nusoap, Estou com uma dificuldade em fazer uma função especifica funcionar, saberia como faço para testa-la? Ex; quando acesso o serviço do WS, ele me mostra a folha do ws com o parâmetro a ser passado para se obter um retorno, não sei como faço uma função que criei amarrada em uma view no meu DB funcionar.

  5. Rafael Clares janeiro 9, 2012 às 1:38 pm

    Chebaca, você precisa criar o server e o client para usar o ws.
    Veja esse exemplo básico de server e client (hello word)
    http://www.scottnichol.com/nusoapintro.htm

  6. Mozart janeiro 25, 2012 às 7:22 pm

    Mais um ótimo post! Exatamente o que eu procurava. Valeu!

  7. newber janeiro 27, 2012 às 3:39 pm

    Eu refiz a simulação do teste que vc apresentou no post criando o mesmo banco de dados com menos nomes, porém coloquei na web para testar, ele gera o arquivo xml, porém quando vai gravar no servidor ele cria o arquivo em branco o que pode ser?

    • Rafael Clares janeiro 27, 2012 às 8:53 pm

      Newber, você descomentou quais linhas? Quais foram comentadas?

  8. LeoChaves setembro 11, 2012 às 3:48 pm

    Obrigado por compartilhar as informações. =)
    Eu precisava processar uma lista de exclusão/exceção condicional. E nao sei como fazer o select disso ser considerado na hora de montar o xml. Alguém pode dar uma luz?

    Tenho uma lista no banco e mais de um sistema que baixa essa lista, o complicador é que cada sistema tem peças que nao devem ser exibidas e outras que devem ser exibidas no lugar.

    Pensei em montar uma tabela com isso e quando a função de montar o XML fosse processada ela faria as alterações necessárias com base nessa lista.

    • Rafael Clares setembro 17, 2012 às 8:03 pm

      Leo, neste caso o ideal é você criar um arquivo ou método para cada sistema, talvez passando um parâmetro na url, ex:
      Sistema 1 = Mostra todas as peças geraXml.php?tipo=1
      Sistema 2 = Mostra algumas as peças geraXml.php?tipo=2

      Assim dependendo da url o script faz um ou outro select
      if($_GET[‘tipo’] == 1)
      {
      $str = “select * from tb1 where …..”;
      }
      elseif($_GET[‘tipo’] == 2)
      {
      $str = “select * from tb1 where …..”;
      }
      elseif($_GET[‘tipo’] == 3)
      {
      ///
      }

      De toda forma, gerar o XML será o de menos, você precisa mesmo, de início é separar as seleções de acordo com as condições que precisa;
      Infelizmente, é meio vago para mim como funciona seu sistema.

Os comentários estão desativados.

%d blogueiros gostam disto: