Converter CSV em XML

Funciona no seu dispositivo · Seu arquivo nunca sai do seu dispositivo.

Solte um CSV ou cole o texto e receba um documento XML com um elemento <root>, um elemento <item> por linha e um elemento filho por coluna, com o nome do cabeçalho. O separador é detectado sozinho (vírgula, ponto e vírgula, tabulação, barra vertical), campos entre aspas são tratados pela RFC 4180, e um BOM UTF-8 é retirado.

Nomes de coluna que o XML não aceita como nome de elemento — com espaços, símbolos ou dígito na frente — são corrigidos com sublinhados ("Preco unitario" vira Preco_unitario), então a saída é sempre bem formada. Os valores são escritos como texto dentro dos elementos; não há atributos, o que mantém o documento simples para qualquer leitor.

Você vê as primeiras 200 linhas antes de baixar, e a conversão acontece inteiramente no seu aparelho.

Como Converter CSV em XML

  1. Solte um arquivo CSV, ou cole o texto CSV.
  2. Deixe o separador em automático, ou escolha um.
  3. Clique em «Converter para XML» e confira a prévia.
  4. Baixe o .xml.

Formatos suportados e limites

Entrada
CSV / TSV — arquivo ou texto colado
Saída
XML 1.0, UTF-8, <root><item>…</item></root>
Leitura
RFC 4180; separador detectado sozinho
Nomes
Cabeçalhos corrigidos para nomes de elemento válidos
Onde roda
No seu navegador — sem enviar nada

Não serve para: Gerar um XML de esquema específico (NF-e, um formato bancário ou de e-commerce) — os nomes dos elementos vêm dos seus cabeçalhos, não de um esquema.

Os valores são escritos exatamente como no CSV

O XML guarda todo valor como texto, então não há nada a ganhar lendo números ou true e false, e esta página não oferece isso. Cada valor é escrito como está no CSV: 1.50 continua 1.50, 1e3 continua 1e3, TRUE continua TRUE e a palavra NULL continua NULL. Uma célula vazia dá um elemento vazio, como <note/>, e zeros à esquerda, como em 007, são mantidos.

Como os nomes do cabeçalho viram nomes de elemento

Cabeçalhos repetidos ou vazios são corrigidos primeiro: duas colunas chamadas nome viram <nome> e <nome_2>, e um terceiro cabeçalho vazio vira <column_3>. Depois, cada nome é ajustado para ser válido em XML. Total (USD) vira Total__USD_, porque espaços e parênteses viram sublinhados, e 1st vira _1st. Hífen e ponto são permitidos, então e-mail continua e-mail, e endereco.cidade continua um elemento só, com esse nome; ele não é dividido em elementos aninhados. Cabeçalhos em qualquer escrita, árabe ou chinês, por exemplo, ficam como estão.

Dois cabeçalhos que acabam com o mesmo nome, como "a b" e "a_b", são escritos os dois como <a_b> dentro de cada <item>. Um programa que lê elementos pelo nome pode então ver só o primeiro, então renomeie um deles no CSV antes.

Como o CSV é lido

O texto é lido pelas mesmas regras de /csv-to-json, que as explica com exemplos: como as aspas funcionam, como o separador é encontrado, como a codificação do arquivo é reconhecida e o que acontece com uma linha com mais ou menos células que o cabeçalho. No XML, uma célula que falta vira um elemento vazio. Células além do último cabeçalho não têm nome de elemento, então ficam de fora, e uma mensagem diz quantas linhas as tinham e onde está a primeira.

Os nomes <root> e <item> são fixos. Se um sistema espera outros nomes, como <clientes> e <cliente>, troque-os num editor de texto depois de baixar; nada mais na estrutura precisa mudar.

Perguntas frequentes

Meus arquivos são enviados para algum servidor?
Não. A conversão acontece inteiramente no seu navegador, com a capacidade do seu próprio aparelho. O arquivo não sai do seu computador nem do seu celular, e, depois que você usa a ferramenta uma vez, ela continua funcionando sem internet (as de vídeo, de reconhecimento de texto e de remoção de fundo baixam o motor deste site no primeiro uso).
Como fica a estrutura do XML?
Uma declaração XML, depois <root>, e para cada linha um <item> com um elemento por coluna: <item><nome>Ana</nome><cidade>Recife</cidade></item>. O elemento de linha sempre se chama item.
Meus cabeçalhos têm espaços — é um problema?
Não. Os nomes são corrigidos para o que o XML aceita: espaços e símbolos viram sublinhados, e um dígito na frente ganha um sublinhado antes. O resto do nome não muda.
Ele detecta o separador?
Sim — vírgula, ponto e vírgula, tabulação e barra vertical são testados nas primeiras linhas e o que for consistente vence. Você também pode escolher explicitamente.

Ferramentas relacionadas

Mais em Planilhas e dados

Esta página em outros idiomas: English · العربية · Deutsch · Français · Español · Русский · 中文 · हिन्दी · Türkçe · עברית · فارسی · اردو · Bahasa Indonesia · বাংলা