Conversor de CSV para XML

APIs modernas preferem JSON, mas muitos sistemas empresariais ainda esperam XML: serviços SOAP, feeds de produtos para mercados mais antigos, arquivos de pagamento SEPA, declarações XBRL. Este conversor pega um CSV, permite que você nomeie o elemento raiz e o elemento item por linha, e produz um documento XML bem formado onde cada cabeçalho se torna um elemento filho dentro de cada linha. Caracteres especiais são escapados e nomes de tags XML inválidos são sanitizados para que a saída seja analisável em qualquer lugar.

Como o XML é gerado

  1. 1

    Cole o CSV

    Inclua uma linha de cabeçalho para que o conversor saiba como nomear cada elemento de campo.

  2. 2

    Nomeie raiz e item

    Os padrões são `<items>` e `<item>`. Substitua por qualquer coisa que comece com uma letra ou sublinhado.

  3. 3

    Nomes de tags sanitizados

    Caracteres não alfabéticos se tornam sublinhados; tags que não começam com uma letra voltam para um padrão seguro.

  4. 4

    Valores escapados

    E comercial, sinais de menor e maior e aspas dentro dos valores são substituídos por entidades XML para que a saída seja sempre válida.

Como é a saída e onde funciona

CSV de entrada

sku,nome,preço
A-101,Widget,9.99
B-202,Gadget,14.50

XML de saída com padrões

<?xml version="1.0" encoding="UTF-8"?>
<items>
  <item>
    <sku>A-101</sku>
    <name>Widget</name>
    <price>9.99</price>
  </item>
  <item>
    <sku>B-202</sku>
    <name>Gadget</name>
    <price>14.50</price>
  </item>
</items>

Regras de nome de tag (XML 1.0)

Permitido Não permitido
Letras, dígitos, hífens, sublinhados, pontos Espaços, &, <, >, aspas, parênteses, barras
Deve começar com uma letra ou sublinhado Não pode começar com um dígito ou pontuação
Prefixo xml é reservado Tags que começam com xml podem ser rejeitadas

O conversor substitui silenciosamente caracteres ilegais nos nomes dos cabeçalhos por sublinhados. Se um cabeçalho começa com um dígito, toda a tag volta para field_N.

Tabela de escape

Os valores passam por htmlspecialchars com ENT_XML1, então esses caracteres são substituídos:

  • &&amp;
  • <&lt;
  • >&gt;
  • "&quot;
  • '&apos;

Usos comuns a jusante

  • Feeds de produtos para mercados mais antigos ou sites de comparação de preços.
  • Corpos de requisição SOAP onde você precisa gerar cargas úteis de exemplo a partir de dados de planilhas.
  • XBRL ou Dublin Core-estilo esquemas simples que mapeiam um registro plano para elementos nomeados.
  • Recursos de string do Android, embora você precise envolver tudo em <resources> e renomear os elementos item para <string name="...">.

Perguntas frequentes

Caracteres não alfabéticos são substituídos por sublinhados, então Product Name se torna Product_Name. Se o nome sanitizado não começar com uma letra ou sublinhado, ele volta para field_N para permanecer válido em XML.

Não diretamente, cada campo CSV se torna um elemento filho dentro do item. Para XML baseado em atributos, você precisará pós-processar a saída ou usar uma ferramenta específica de esquema.

Sim. A saída começa com <?xml version="1.0" encoding="UTF-8"?>. Remova-a manualmente se você estiver incorporando o fragmento dentro de um documento maior.

Sim. O CSV que você cola é enviado ao nosso servidor, pois a análise, o escape e a montagem do XML são executados lá. Ele é usado apenas para gerar o resultado XML e não é armazenado.

Ferramentas relacionadas