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