Como Importar arquivos XML para o MySQL

Como Importar arquivos XML para o MySQLNo post de hoje vou demonstrar como importar aquivos XML para o MySQL sem utilizar linguagens como PHP, Java, C#, Python ou etc., vamos usar apenas comandos nativos do MySQL.

É muito difícil encontrar um programador que nunca teve contato com arquivos XMLs, principalmente quem trabalha com NF-e, mas também existem casos de sincronização de produtos, clientes e etc.

Outros posts sobre MySQL que podem interessar:

Curiosidades sobre os tipos de dados do MySQL

Visão geral sobre índices no MySQL

Utilizando a função DATE_SUB() para cálculo de datas no MySQL

Geralmente quando precisamos desse tipo de importação já pensamos logo em uma linguagem para nos auxiliar, eu mesmo já penso logo no PHP que tem muita facilidade para ler arquivos XML.

Mas o MySQL possui uma funcionalidade nativa para executar importação de arquivos XML para uma determinada tabela que informamos no momento da importação, estamos falando do comando LOAD XML INFILE. 

A sintaxe é bem simples, existem vários parâmetros opcionais mas basicamente é só informar:

  1. Caminho do arquivo XML
  2. Nome da tabela onde serão importados os dados
  3. Charset dos caracteres
  4.  Tag que delimita os registros no XML.

Se quisermos evitar digitação é importante que o nome dos campos da tabela sejam iguais aos nomes das TAGs no arquivo XML, caso não sejam podemos setar na própria instrução o nome dos campos, leia mais detalhes na documentação oficial do MySQL

Importar XML para o MySQL

Nesse exemplo vamos importar dados de clientes fictícios de um arquivo XML para uma tabela com o nome “cliente” no banco de dados “db_blog”:

Post relacionado:  Aprenda como Manipular Datas no SQL Server
Estrutura do XML

Observem que para cada tag “<cliente>” e “</cliente>” temos dados de um cliente, então nossa tag que delimita os registros é “<cliente>”:

 
Estrutura da Tabela

Observem que na tabela temos um campo “cpf”, ele será desconsiderado pela importação pois no arquivo XML não existe TAG com esse nome:

 
Executando Importação

Para executar a importação temos que passar o caminho físico do arquivo, nesse exemplo meu arquivo XML está nesse caminho “/home/william/Documentos/Artigo/ImportarXML/cliente.xml”.

Post relacionado:  Utilizando a função DATE_SUB() para cálculo de datas no MySQL

Observação: Para usuários Linux(Ubuntu) é necessário alterar o arquivo “/etc/apparmor.d/usr.sbin.mysqld”, adicionando 2 linhas que concedem permissão de leitura para o MySQL e posteriormente recarregar as configurações.

Recarregando as configurações:

 
Resultado Final

Resultado Importação XML

Bom pessoal é isso, nesse post demonstrei o básico de como podemos importar arquivos XML para o MySQL usando apenas comando nativos, sem a necessidade usar linguagens intermediárias. É claro que essa funcionalidade não é destinada para o usuário final e sim para nós programadores que sempre temos essa necessidade.

Vale ressaltar que não é só o MySQL que possui essa facilidade, os principais SGBDs do mercado também possuem comando nativos para manipular arquivos XML.

Até a próxima …

Tags:,
Show Buttons
Hide Buttons