Conversor gratuito de XML para CSV
Converta dados XML para o formato CSV com detecção automática.
Como usar
- Cole ou digite seus dados XML na área da esquerda.
- A ferramenta detecta automaticamente os elementos que se repetem e achata as estruturas aninhadas.
- Pré-visualize seus dados à direita. Clique em Baixar o CSV para salvar o arquivo convertido.
Perguntas frequentes
Como os elementos aninhados são tratados ?
Os elementos aninhados são achatados com a notação de pontos. Por exemplo, « person.address.city » vira um único cabeçalho de coluna.
E se os elementos têm um número diferente de filhos ?
Os valores ausentes são deixados em branco na saída CSV. Todos os cabeçalhos de colunas são preservados mesmo que algumas linhas não tenham certos valores.
Como a ferramenta detecta os elementos que se repetem ?
A ferramenta identifica automaticamente o tipo de elemento mais frequente no seu XML e o usa como fonte das linhas.
Por que a conversão de XML para CSV aparece com tanta frequência
O XML é verboso e hierárquico; o CSV é plano e denso. Muitos dados úteis do mundo real vivem em XML: sitemap.xml, feeds RSS / Atom, arquivos de exportação do WordPress, configs plist da Apple, listas de dependências pom.xml do Maven, trilhas de GPS (GPX), marcadores do Google Earth (KML), formatos de extrato bancário (CAMT.053, MT940 em forma XML), feeds de produtos de e-commerce, HL7 v3 de saúde, relatórios financeiros em XBRL, partituras em MusicXML, e quase nada disso pode ser analisado sem antes ser achatado em linhas. Excel, Google Sheets, LOAD DATA do SQL, Pandas, R, Tableau, Power BI consomem todos CSV de cara; colocar o seu XML em uma dessas ferramentas significa converter primeiro.
A incompatibilidade fundamental
O XML permite aninhamento arbitrário; o CSV é bidimensional. Não existe um mapeamento XML→CSV de propósito geral sem perdas. Qualquer conversor precisa fazer suposições sobre qual nível da árvore representa as «linhas» e como lidar com o aninhamento mais profundo. As duas formas comuns:
- Formato de registro repetido (o caso fácil). Um elemento raiz contendo muitos filhos, cada um com a mesma forma.
<catalog><book>…</book><book>…</book></catalog>. Cada<book>vira uma linha; seus elementos folha viram colunas. É isso que o conversor procura e trata de forma limpa. - Formato de documento de conteúdo misto. Texto corrido com marcação embutida, como XHTML ou DocBook. Não há um mapeamento CSV limpo para isso: normalmente é serializado como uma única célula de string ou rejeitado.
A ferramenta detecta automaticamente o elemento que se repete encontrando o filho direto mais frequente da raiz, o que está correto para ~90% dos feeds XML reais. Se o seu XML não se encaixa nesse padrão, pré-processe-o antes com um script XPath rápido ou edite-o à mão até uma forma de registro repetido.
Feeds XML comuns que convertem bem
- sitemap.xml: cada entrada
<url>vira uma linha com as colunasloc,lastmod,changefreq,priority. Útil para auditorias de SEO e inventários de conteúdo. - Feeds RSS / Atom: cada
<item>ou<entry>vira uma linha. Útil para análise de marketing de conteúdo ou migração para uma plataforma diferente. - XML de exportação do WordPress (WXR): tags
<item>para posts, páginas e anexos. Comum ao migrar para o Substack, o Ghost ou geradores de sites estáticos. - GPX (GPS Exchange Format): os pontos de trilha
<trkpt>comlat,lon,ele,timeviram linhas. Útil para análise de rotas. - KML (Google Earth): entradas
<Placemark>com nomes, descrições e coordenadas. - XML plist do iTunes / Apple em forma de registro repetido: entradas de playlist, metadados de apps.
- XML de extrato bancário OFX / QFX / CAMT: as transações viram linhas para importações contábeis.
- Feeds de catálogo de produtos: muitas plataformas de e-commerce fornecem feeds XML com elementos
<product>repetidos para envios a CSEs.
Como atributos, aninhamento e filhos repetidos são tratados
- Atributos como
<book id="42">são achatados em colunas. O conversor usa o nome do atributo diretamente como o cabeçalho da coluna (id) quando ele é inequívoco. - Elementos aninhados são achatados com a notação de pontos:
<person><address><street>Main</street><city>NYC</city></address></person>produz as colunasaddress.streeteaddress.city. Essa é a mesma convenção que ojson_normalizedo Pandas usa para JSON aninhado. - Elementos filhos repetidos como
<tags><tag>a</tag><tag>b</tag></tags>podem ser um problema: não há uma representação plana óbvia. Pré-processe se você precisar de uma saída de coluna por tag ou de linha por tag. - As cinco referências de entidade predefinidas (
&,<,>,',") têm o escape revertido durante a conversão, entãoTom & Jerryno XML viraTom & Jerryna célula do CSV. - Seções CDATA são desembrulhadas: o conteúdo vira o valor da célula como está.
- Comentários e instruções de processamento são descartados; o CSV não tem equivalente.
Codificação: a armadilha do Excel
O XML declara sua codificação via <?xml version="1.0" encoding="UTF-8"?>. O CSV não tem declaração de codificação; o consumidor adivinha. O Excel no Windows usa Windows-1252 por padrão, então abrir um CSV em UTF-8 sem uma marca de ordem de bytes (BOM) exibe mojibake (o é vira é, o ü vira ü). A correção: ou salve o CSV com um BOM de UTF-8 () no início, use o assistente de importação Dados → De Texto/CSV do Excel e selecione explicitamente UTF-8, ou abra o arquivo no Google Sheets, que lida com UTF-8 corretamente sem um BOM.
Escolha do delimitador
Conforme a RFC 4180, o delimitador canônico do CSV é a vírgula. A ferramenta também suporta ponto e vírgula, tabulação e barra vertical: escolha o que se adequa ao seu público:
- Vírgula: o padrão. O Excel a lê quando a configuração regional do SO é o inglês. Segura para a maioria dos casos de uso.
- Ponto e vírgula: preferido na Europa continental e na América Latina, onde a vírgula é o separador decimal. O Excel usa o separador de listas do SO, então um Excel com localidade francesa ou alemã produz um CSV delimitado por ponto e vírgula.
- Tabulação: útil quando os campos contêm vírgulas (endereços, texto livre). Comum em dados científicos.
- Barra vertical: recorre a um delimitador que é raro em qualquer dado natural. Usada em alguns sistemas corporativos legados onde os dados podem conter vírgulas, ponto e vírgula E tabulações.
Conforme a RFC 4180, os campos que contêm o delimitador escolhido, quebras de linha ou aspas duplas são automaticamente envolvidos em aspas duplas; as aspas duplas internas são escapadas por duplicação. As mesmas regras de citação se aplicam, independentemente do delimitador que você escolher.
Privacidade
As cargas de XML muitas vezes contêm informações confidenciais: transações de extrato bancário, dados internos de funcionários, sitemaps raspados que revelam URLs internas, registros de saúde, catálogos de produtos sob NDA. O DOMParser embutido do navegador roda inteiramente na sua aba: não há requisição de rede, nem ida e volta a um servidor, nem entrada de log. Os dados vão da sua área de transferência para uma árvore analisada na memória, são percorridos uma vez para o achatamento, e o resultado vai parar na área de texto de saída. Se você não clicar em Baixar, nada chega nem a ser gravado no disco.
Erros comuns
- Colar um XML que não tem forma de registro repetido. Um documento como um único arquivo de configuração sem repetição não vai se achatar em um CSV utilizável. O conversor foi projetado para XML de «lista de itens semelhantes».
- Esperar que os prefixos de atributo façam ida e volta.
<product id="42">vira uma coluna chamadaid, nãoproduct@idnemproduct.id. Se você reimportar o CSV em outro lugar como XML, vai precisar remapear. - Delimitador errado para o público. Um CSV com vírgula aberto em uma instalação do Excel em francês pode colapsar em uma única coluna. Combine o delimitador com o lugar onde o arquivo vai parar.
- Esquecer o BOM de UTF-8 para o Excel. Os caracteres não latinos parecem quebrados no Excel do Windows sem o BOM. Ou adicione-o, ou abra o arquivo no Google Sheets / Excel para a web.
- Tentar converter XHTML ou DocBook. O XML de documento de conteúdo misto não se achata de forma limpa: use um pipeline XML/XSLT adequado para esses casos, não um conversor tabular.
- Risco preexistente de injeção de CSV nos valores dos campos. Se o seu XML contém texto gerado por usuários e você vai abrir a saída no Excel ou no Sheets, as células que começam com
=,+,-ou@são interpretadas como fórmulas. A OWASP documenta isso como uma classe de ataque real: sanitize antes de compartilhar exportações de conteúdo gerado por usuários. - Elementos filhos repetidos. Se o XML tem invólucros
<tags>com vários filhos<tag>, a saída plana não consegue representar isso de forma limpa. Ou achate para uma linha por tag (com os campos do pai repetidos), ou pré-processe o XML para embutir as tags como uma string delimitada.
Mais perguntas frequentes
A ferramenta vai validar o meu XML contra um schema?
Não. Ela verifica apenas se está bem formado, usando o DOMParser embutido do navegador. Se você precisa de validação XSD ou RELAX NG, use uma ferramenta dedicada como o xmllint, o Saxon ou o validador de XML Schema do W3C: estar bem formado é suficiente para um achatamento seguro em CSV.
Qual o tamanho máximo do meu XML?
O que quer que o seu navegador aguente. Não há limite do lado do servidor porque não há servidor envolvido. Dezenas de megabytes convertem em um ou dois segundos em um dispositivo moderno. Se você tem centenas de megabytes de XML, divida em lotes antes de converter; passar tudo por uma única aba do navegador pode esbarrar nos limites de memória.
A ferramenta lida com namespaces de XML?
Sim, elementos com namespace como <atom:link> são reconhecidos e o prefixo é preservado no nome da coluna. Se você não quer o prefixo nos cabeçalhos do seu CSV, faça um buscar-e-substituir rápido na saída para removê-los.
Meu XML é enviado para algum lugar?
Não. Toda a análise e o achatamento acontecem no seu navegador via o DOMParser embutido. O conteúdo da área de texto nunca é transmitido, registrado ou armazenado. Quando a aba é fechada, os dados somem.
Qual é a diferença entre isto e a ferramenta JSON para CSV?
Mesmo objetivo (achatar dados hierárquicos em linhas), mas formatos de entrada diferentes. O XML é mais verboso, permite atributos, tem namespaces e usa referências de entidade para caracteres especiais. O conversor de XML para CSV lida com esses recursos especificamente; o conversor de JSON para CSV espera uma entrada de array de objetos. Se você tem JSON, use aquela ferramenta; se você tem XML, esta vai lhe dar um resultado mais limpo.
Posso fazer a conversão inversa (CSV para XML)?
Não com esta ferramenta, mas a inversa é geralmente mais fácil: escolha um nome de elemento de linha, envolva cada linha e converta cada coluna em um elemento filho. Um pequeno script Python ou Node com csv + xml.etree resolve isso em 20 linhas. Ou use uma ferramenta de dados estruturados como o Power Query do Excel, que pode exportar CSV de volta para XML com um schema escolhido.