CodeKitHub
Ferramentas JSON

Conversor de CSV para XML

Última atualização:

Para converter CSV para XML, cada linha torna-se um elemento <row> e cada coluna torna-se numa etiqueta filha nomeada segundo o seu cabeçalho — a conversão inversa extrai uma coluna por cada nome de etiqueta filha distinto encontrado no XML. Cole qualquer um dos formatos e escolha a direção que precisa. Tudo funciona localmente, pelo que os seus dados nunca saem do seu dispositivo.

O que é esta ferramenta?

Alguns sistemas (software empresarial legado, certas APIs baseadas em SOAP, feeds próximos de RSS) esperam dados em XML, enquanto folhas de cálculo e a maioria das ferramentas de importação de dados esperam CSV. Esta ferramenta move dados entre os dois formatos: CSV → XML envolve cada linha num elemento <row> dentro de um elemento raiz <rows>, com cada coluna a tornar-se numa etiqueta filha nomeada segundo o cabeçalho; XML → CSV faz o inverso, extraindo uma coluna por cada nome de etiqueta filha distinto que encontra.

O lado CSV é analisado com um analisador de campos entre aspas adequado (não uma simples divisão por vírgulas), pelo que valores com vírgulas, quebras de linha ou aspas incorporadas são tratados corretamente. O lado XML é analisado usando a API nativa DOMParser do navegador — a mesma interface que os navegadores usam internamente para analisar documentos XML — em vez de um leitor artesanal baseado em expressões regulares, pelo que etiquetas aninhadas e o escape XML padrão são tratados da forma como um verdadeiro analisador XML trataria.

Nomes de coluna/etiqueta que não são nomes de elemento XML válidos (com espaços, começando por um dígito, etc.) são automaticamente higienizados ao gerar XML, já que os nomes de elemento XML têm regras mais rígidas do que os cabeçalhos CSV.

Fonte: a análise de CSV segue a RFC 4180; a estrutura XML segue a especificação W3C XML 1.0.

Por que usar?

  • Funciona em ambas as direções — CSV para XML e XML para CSV, numa só ferramenta.
  • Análise CSV correta — lida com campos entre aspas com vírgulas, quebras de linha e aspas escapadas, não apenas uma simples divisão por vírgulas.
  • Análise XML baseada em padrões — XML → CSV usa o DOMParser nativo do navegador em vez de um analisador regex personalizado, pelo que XML malformado é reportado como erro em vez de gerar silenciosamente dados corrompidos.
  • Escape XML automático — caracteres especiais como & e < nos seus valores CSV são escapados corretamente ao gerar XML.
  • 100% do lado do cliente — nada do que colar aqui é carregado para um servidor.

Como usar

  1. Cole dados CSV (com uma linha de cabeçalho) ou dados XML na caixa.
  2. Clique em «CSV → XML» para gerar XML, ou em «XML → CSV» para converter XML de volta para uma tabela.
  3. Reveja o resultado — copie-o ou descarregue-o como arquivo.
  4. Para CSV → XML, cada linha torna-se num elemento <row> com uma etiqueta por coluna, envolvido numa raiz <rows>.

Exemplo

Entrada

name,age
Alice,30
Bob,25

Resultado

<?xml version="1.0" encoding="UTF-8"?>
<rows>
  <row>
    <name>Alice</name>
    <age>30</age>
  </row>
  <row>
    <name>Bob</name>
    <age>25</age>
  </row>
</rows>

Cada linha CSV torna-se num elemento <row>, e cada coluna numa etiqueta filha nomeada segundo o cabeçalho — passar este XML novamente por «XML → CSV» reconstrói a tabela original de duas colunas.

Dicas práticas

  • Alimentar um sistema legado ou uma API SOAP que espera XML: converta primeiro a sua exportação CSV aqui, e depois cole o XML resultante diretamente no sistema de destino.
  • Auditar uma exportação XML que recebeu: execute XML → CSV para obter uma vista de tabela rápida e legível sem precisar de um editor XML completo.
  • Se o seu XML usar elementos profundamente aninhados em vez de uma estrutura plana <row><coluna>, esta ferramenta não achatará aninhamentos arbitrários — espera um nível de elementos de linha, cada um contendo elementos de coluna simples.

Por que razão DOMParser em vez de um leitor XML artesanal

O XML tem regras estruturais reais — elementos aninhados, entrecomilhado de atributos, escape de caracteres para &, <, >, e por aí adiante — que um analisador rápido baseado em expressões regulares tende a fazer de forma subtilmente errada em tudo o que não seja a entrada mais simples. Usar a API nativa DOMParser do navegador significa que esta ferramenta depende do mesmo motor XML conforme com os padrões que o próprio navegador usa para apresentar documentos XML, em vez de reimplementar a análise XML do zero. Também significa que XML malformado — uma etiqueta não fechada, um sinal de maior/menor solto — surge como um erro de análise claro em vez de produzir silenciosamente um CSV corrompido ou incompleto.

Perguntas frequentes

Isto lida corretamente com valores CSV com vírgulas ou aspas?

Sim. O analisador CSV é um verdadeiro analisador de máquina de estados que acompanha se está dentro de um campo entre aspas, pelo que vírgulas e quebras de linha dentro de aspas (por exemplo, «Smith, John») e aspas duplicadas usadas para escapar um caractere de aspas literal são todos tratados corretamente — não divide simplesmente em cada vírgula.

Como é analisado o XML — é um analisador regex personalizado?

Não. XML → CSV usa a API nativa DOMParser do navegador para analisar o XML numa verdadeira árvore de documento, da mesma forma que o navegador analisa qualquer documento XML. Isto significa que XML malformado é detetado e reportado como erro, em vez de gerar silenciosamente uma saída incorreta como poderia fazer um analisador regex artesanal.

O que acontece aos nomes de coluna que não são etiquetas XML válidas?

Tudo o que não seja uma letra, dígito, sublinhado, hífen ou ponto é substituído por um sublinhado, e um sublinhado inicial é adicionado se o nome começasse de outro modo por um dígito ou pontuação — já que os nomes de elemento XML não podem começar por um número nem conter espaços como um cabeçalho CSV pode.

Os meus dados são carregados para um servidor?

Não. Ambas as direções de conversão funcionam inteiramente em JavaScript no seu navegador, usando o próprio motor de análise XML do navegador — nada é enviado para lado nenhum, o que torna seguro usar com dados de negócio ou de clientes exportados.

Converter CSV → XML → CSV devolve-me exatamente o que comecei?

Para um CSV bem formado com um conjunto de colunas consistente, sim — a ida e volta preserva os valores. Se o seu CSV original tivesse colunas inconsistentes entre linhas ou caracteres invulgares nos nomes de cabeçalho, os nomes de etiqueta higienizados significam que a grafia exata do cabeçalho pode não ser perfeitamente preservada, embora os valores dos dados sejam.

Ferramentas relacionadas