Iniciar uma conversa

Gerando seu próprio exportador de registros em XML.

Utilizaremos uma aplicação de controle para gerar a funcionalidade de exportação de dados do banco de dados para arquivo XML.
O código informado abaixo, poderá ser usado tanto no evento onload, como no evento onvalidade.

 

 

Para gerar um arquivo XMl com os registros de sua base de dados, será necessário:

- Abrir um arquivo com extensão XML usando o comando fopen().
- Gravar o cabeçalho do arquivo usando o comando fwrite().
- Varrer a tabela ou tabelas (inner join) enquanto grava no arquivo.
- Gravar o rodape do arquivo usando o comando fwrite().
- Fechar o arquivo, usando o comando fclose().
- Gerar um link em tela, chamando o arquivo .xml.


* Para ficar o arquivo .xml compativel com charset ISO, será necessário que seu projeto esteja nesse memo charset.




Primeira Etapa: Abrir um arquivo com extensão XML usando o comando fopen().


- Crie variaveis que irão receber caminho e nome do arquivo xml a ser gerado.

Ex.
$diretorio="./doc";


- Utilize o comando "file_exists()" para identificar se o caminho informado existe localmente em seu servidor.
Caso negativo, crie a pasta usando o comando "mkdir()".

if(!file_exists("./doc")) {
mkdir($diretorio);
}


* A função file_exists() aceita o recebimento de string ou variaveis.


- Abra o arquivo usando o comando fopen() do PHP.

$arquivo=$diretorio."/netmake.xml";
$fp = fopen($arquivo, "w");


* A variavel $fp será usada na passagem de parametro do comando fwrite() e fclose() usados a seguir.




Segunda Etapa: Gravar o cabeçalho do arquivo usando o comando fwrite().

O cabeçalho (header) é iniciado por ""
O memso deve receber dados da versão e charset usado.

Ex.

O cabeçalho deve levar um tag coma descrição do seu arquivo.

Ex.

 


Poderá passar a string acima diretamente na função fwrite() ou poderá grava-la em variavel local.

* O comando fwrite() aceita string ou variaveis.

Ex.
fwrite($fp, "Valor da string");



Terceira Etapa: Varrer a tabela ou tabelas (inner join) enquanto grava no arquivo.

Nessa etapa será necessário varrer a sua tabela, usando a macro sc_lookup() ou sc_select().

http://downloads.scriptcase.net/downloads/v5/manual/pt_br/webhelp/manual_mp/28-Macros/00-macros_sc.htm#sc_lookup
http://downloads.scriptcase.net/downloads/v5/manual/pt_br/webhelp/manual_mp/28-Macros/00-macros_sc.htm#sc_select


O valor deve ser gravado dentro de um tag < /> muito parecido com o html.

Ex.

valor



O retorno do seu "SELECT SQL" deverá ser concatenado junto com uma string que torna identificavel o seu valor no xml.

Ex.
sc_lookup(retorno_lookup, "SELECT campo1 FROM tabela");
$variavel="".{retorno_lookup[0][0]}."";



Os campos do seu xml, poderá ser agrupado em grupo.





Ex.
sc_lookup(retorno_lookup, "SELECT campo1, campo2 FROM tabela");
$variavel="";

$variavel.="".{retorno_lookup[0][0]}."";
$variavel.="".{retorno_lookup[0][1]}."";

$variavel.="";


$variavel.="";

$variavel.="".{retorno_lookup[0][0]}."";
$variavel.="".{retorno_lookup[0][1]}."";

$variavel.="";

fwrite($fp, $variavel);



Poderá passar a string acima diretamente na função fwrite() ou poderá grava-la em variavel local.

* O comando fwrite() aceita string ou variaveis.

 

 

Quarta Etapa: Gravar o rodape do arquivo usando o comando fwrite().

Use o comando fwrite() para gravar o rodapé refernte ao seu descritor inserido no cabeçalho.

Ex.

fwrite($fp, "");

 


Quinta Etapa: Fechar o arquivo, usando o comando fclose().

Use o comando fclose() para fechar o arquivo.
Informe como parametro, a variavel usada ao criar o arquivo pela função fopen().

Ex.
fclose($fp);


Exemplo de código final:


 

Sexta Etapa: Gerar um link em tela, chamando o arquivo .xml.

Será necessário usar comando html para exibir o link que baixará ou visualizará o arquivo xml gerado.

Use a tag para tornar um texto link do arquivo.

Ex.
Texto

Baixar documento


Poderá ser usado a atribuição a campo label ou comando echo para exibir o html em tela.

echo "Código Html ";
{campo}="Código Html ";

 

Exemplo de link html na tela da aplicação controle:

 

* Caso deseje aumentar a quantidade de linhas entre um valor e outro do xml, grave o valor
usando a função fwrite().

Ex.
fwrite($fp, "
");

Escolher arquivos ou arraste e solte arquivos
Esse artigo foi útil?
Sim
Não
  1. Amanda Santos (Migrated deleted Agent)

  2. Publicado
  3. Atualizado

Comentários