XML para JSON, XML, CSV, PDF via linha de comando
Windows
2000/2003/Vista
7/8/10/11
and
2012/2016/2019/2022 Server
and
Docker/Citrix/Wine
O Total XML Converter X é um SDK para servidor que converte XML para JSON, CSV, XLSX, PDF, HTML, SQL, DBF, Access e mais de 10 outros formatos — com suporte completo a XSLT e sem necessidade de bibliotecas XML externas no servidor. Ele funciona em modo headless: sem GUI, sem caixas de diálogo, sem pop-ups. O Total XML Converter X é fornecido com um binário de linha de comando e uma interface ActiveX/COM, podendo ser integrado a ASP, PHP, .NET, Python, Ruby, Java e qualquer outro backend que reconheça COM. Os formatos de saída se dividem em dois grupos:
-xslt — sem necessidade de pipeline de duas etapas
table (expande elementos repetidos em linhas), highlight (árvore com sintaxe colorida para revisão humana), report (relatório tabular a partir de um arquivo de definição de tabelas)
-Recurse -kfs), combinação em lote de vários XMLs em um único PDF (-combine -sort name) e processamento por arquivo de fila (-list) para execuções não supervisionadas. As flags amigáveis ao servidor -msuccess, -merror e -IgnoreInvalidSource permitem que um único arquivo defeituoso seja roteado para uma pasta de quarentena sem interromper o lote.O programa processa XML diretamente — sem necessidade do serializador XML do .NET, sem instalação do Saxon ou Xalan, sem surpresas de dependência do msxml após uma atualização do Windows.
A alta velocidade de conversão e os processamentos em lote tornam todo o processo simples e sem tédio. Experimente gratuitamente (período de avaliação de 30 dias, sem limitações) e descubra que ele realmente vale o que custa.
Algumas das conversões de formato atualmente suportadas:
|
|
|
Agentes LLM (Claude, ChatGPT, Cursor, Cline) e frameworks de retrieval (LangChain, LlamaIndex, Haystack) não leem XML bruto bem — tags aninhadas e atributos são ruído para modelos de embedding. O Total XML Converter X grava XML em GitHub-Flavored Markdown com frontmatter estruturado e um sidecar opcional compatível com Docling, de forma que um documento XML chegue ao seu vector store como uma representação de texto limpa e consciente de seções — com a hierarquia de elementos mapeada para títulos Markdown e elementos repetidos transformados em tabelas, e não como uma única string gigante de colchetes angulares.
O que você obtém ao usar saída Markdown:
#, elementos filhos viram ## / ### / #### por profundidade; atributos são renderizados como uma lista chave-valor diretamente sob cada título
table usado para XML-para-XLSX entra em ação para Markdown: elementos irmãos com a mesma tag e estrutura filha idêntica viram linhas em uma única tabela com colunas tipadas detectadas automaticamente
-xslt stylesheet.xsl para remodelar o XML antes da renderização Markdown, o mesmo pipeline de uma única etapa usado para os outros formatos de saída
source_file, format (MIME), root_element, namespaces, element_count, profundidade, esquema detectado (quando XSD/DTD é referenciado), generator, created e um binary_hash para proveniência
.docling.json — JSON em esquema Docling com colunas tipadas de tabelas detectadas automaticamente (com unidades como EUR, pcs, %), âncoras por elemento de volta ao XML de origem (XPath), mapa de namespaces e um array chunks_hint que seu splitter pode ler
É o CoolUtils RAG Adapter — um contrato Markdown unificado compartilhado por todos os produtos Total Converter X. Especificação completa, amostras .md + .docling.json e trechos de integração estão na página Coolutils Converter X — RAG Adapter.
(inclui 30 dias de teste GRATUITO)
(apenas $750.00)
string src = @"C:\test\Source.xml";
string dest = @"C:\test\Dest.json";
var cnv = new XMLConverterX();
cnv.Convert(src, dest, "-cJSON -log c:\\test\\XML.log");
if (!string.IsNullOrEmpty(cnv.ErrorMessage))
throw new Exception(cnv.ErrorMessage);
public static class Function1
{
[FunctionName("Function1")]
public static async Task Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
ILogger log)
{
StringBuilder sbLogs = new StringBuilder();
sbLogs.AppendLine("started...");
try
{
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.CreateNoWindow = true;
startInfo.UseShellExecute = false;
var assemblyDirectoryPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
assemblyDirectoryPath = assemblyDirectoryPath.Substring(0, assemblyDirectoryPath.Length - 4);
var executablePath = $@"{assemblyDirectoryPath}\Converter\XMLConverterX.exe";
sbLogs.AppendLine(executablePath + "...");
var srcPath = $@"{assemblyDirectoryPath}\src\sample.xml";
var outPath = Path.GetTempFileName() + ".json";
startInfo.FileName = executablePath;
if (File.Exists(outPath))
{
File.Delete(outPath);
}
if (File.Exists(executablePath) && File.Exists(srcPath))
{
sbLogs.AppendLine("files exists...");
}
else
sbLogs.AppendLine("EXE & source files NOT exists...");
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.Arguments = $"{srcPath} {outPath}";
using (Process exeProcess = Process.Start(startInfo))
{
sbLogs.AppendLine($"wait...{DateTime.Now.ToString()}");
exeProcess.WaitForExit();
sbLogs.AppendLine($"complete...{DateTime.Now.ToString()}");
}
int sleepCounter = 10;
while(!File.Exists(outPath) && sleepCounter > 0)
{
System.Threading.Thread.Sleep(1000);
sbLogs.AppendLine("sleep...");
sleepCounter--;
}
if (File.Exists(outPath))
sbLogs.AppendLine("Conversion complete successfully.");
}
catch (Exception ex)
{
sbLogs.AppendLine(ex.ToString());
}
return new OkObjectResult(sbLogs);
}
}
dim C
Set C=CreateObject("XMLConverter.XMLConverterX")
C.Convert "c:\source.xml", "c:\dest.json", "-cJSON -log c:\XML.log"
Response.Write C.ErrorMessage
set C = nothing
dim C
Set C=CreateObject("XMLConverter.XMLConverterX")
Response.Clear
Response.AddHeader "Content-Type", "binary/octet-stream"
Response.AddHeader "Content-Disposition", "attachment; filename=test.json"
Response.BinaryWrite C.ConvertToStream("C:\www\ASP\Source.xml", "C:\www\ASP", "-cJSON -log c:\XML.log")
set C = nothing
$src="C:\\test\\test.xml";
$dest="C:\\test\\test.json";
if (file_exists($dest)) unlink($dest);
$c= new COM("XMLConverter.XMLConverterX");
$c->convert($src,$dest, "-cJSON -log c:\\test\\XML.log");
if (file_exists($dest)) echo "OK"; else echo "fail:".$c->ErrorMessage;
require 'win32ole'
c = WIN32OLE.new('XMLConverter.XMLConverterX')
src = "C:\\test\\test.xml"
dest = "C:\\test\\test.json"
c.convert(src, dest, "-cJSON -log c:\\test\\XML.log")
if not File.exist?(dest)
puts c.ErrorMessage
end
import win32com.client
import os.path
c = win32com.client.Dispatch("XMLConverter.XMLConverterX")
src = "C:\\test\\test.xml"
dest = "C:\\test\\test.json"
c.convert(src, dest, "-cJSON -log c:\\test\\XML.log")
if not os.path.exists(dest):
print(c.ErrorMessage)
uses Dialogs, Vcl.OleAuto;
var
c: OleVariant;
begin
c := CreateOleObject('XMLConverter.XMLConverterX');
c.Convert('c:\test\source.xml', 'c:\test\dest.json', '-cJSON -log c:\test\XML.log');
if c.ErrorMessage <> '' then
ShowMessage(c.ErrorMessage);
end;
var c = new ActiveXObject("XMLConverter.XMLConverterX");
c.Convert("C:\\test\\source.xml", "C:\\test\\dest.json", "-cJSON");
if (c.ErrorMessage != "")
alert(c.ErrorMessage)
use Win32::OLE; my $src = "C:\\test\\test.xml"; my $dest = "C:\\test\\test.json"; my $c = CreateObject Win32::OLE 'XMLConverter.XMLConverterX'; $c->convert($src, $dest, "-cJSON -log c:\\test\\XML.log"); print $c->ErrorMessage if -e $dest;
"O Total XML Converter X parece perfeito para o meu uso, embora o utilizemos apenas para converter arquivos .xml antigos para outros formatos. Escolhemos o programa pela capacidade de processar arquivos XSLT. Tínhamos mais de 6.000 XMLs e o conversor fez o trabalho em menos de uma hora. Obrigado!"
Jean Robitaille
Sparktown Christian School
"Traduzimos feeds XML de parceiros (pedidos, ASN, faturas) para o nosso schema JSON interno. O Total XML Converter X com -xslt é o motor: cada parceiro tem sua própria folha de estilos, o conversor a aplica em tempo real e o JSON cai direto no Kafka. Substituímos um contêiner Java/Saxon que consumia 2 GB de RAM no mesmo trabalho. O binário Windows usa cerca de 60 MB e roda com o dobro do throughput."
Lukas R.
Senior Backend Developer at an EDI integration vendor
"Nossos clientes enviam declarações de conformidade XBRL/XML que precisamos renderizar como PDF para auditores humanos. O Total XML Converter X com -method report e um arquivo de definição de tabelas produz uma saída PDF limpa e paginada sem precisarmos escrever nosso próprio renderizador. O roteamento de fila com -msuccess/-merror é exatamente o que precisávamos para o pipeline orientado por watcher. Cinco anos em produção, sem surpresas."
Carmen V.
DevOps Engineer at a regulatory-reporting platform
"Empacotamos o Total XML Converter X em nossa ferramenta de migração de dados sob a Royalty-Free License. A taxa única por projeto foi uma fração do que o Altova MapForce queria em assinatura por desenvolvedor. Nosso instalador entrega e registra o ActiveX, nosso aplicativo o chama diretamente, e os usuários finais veem apenas a nossa UI. A limitação de 32 bits do ActiveX nos custou alguns dias de retrabalho de pipeline, mas o suporte foi ágil quando perguntamos sobre alternativas."
Halil B.
Independent Software Vendor
"Os clientes nos enviam por e-mail dumps XML noturnos de vinte sistemas ERP diferentes. Usamos o Total XML Converter X para achatar tudo em XLSX com -detectcell -plain, para que os analistas possam pivotar diretamente sem uma ferramenta de ETL separada. O throughput é de cerca de 200 XMLs por segundo no nosso hardware para arquivos típicos de menos de 1 MB. A CLI é determinística entre execuções: mesma entrada, mesmas flags, bytes idênticos."
Felipe O.
Lead .NET Developer at a SaaS analytics firm
Equipes de desenvolvimento que convertem XML para CSV, JSON e PDF em servidores via ActiveX ou linha de comando
Potencialize ferramentas de XML para CSV e XML para JSON no servidor
Desenvolvedores web integram o Total XML ConverterX via ActiveX em aplicações ASP ou PHP. Os usuários fazem upload de arquivos XML pelo navegador, o servidor os converte para CSV, JSON ou PDF silenciosamente sem mensagens pop-up e retorna o resultado. Arquivos de código de exemplo são incluídos para agilizar a integração.
Transforme feeds XML nos formatos que outros sistemas exigem
Equipes de TI corporativo usam o Total XML ConverterX para conectar sistemas que falam linguagens de dados diferentes. Converta exportações XML de uma plataforma em CSV para ferramentas baseadas em planilha, JSON para APIs web ou PDF para revisão humana — tudo automatizado via linha de comando com timestamps originais preservados.
Converta em lote feeds de dados XML em pipelines agendados
Equipes de engenharia de dados adicionam o Total XML ConverterX como etapa de conversão em fluxos de trabalho ETL. Descargas XML noturnas de bancos de dados, APIs de parceiros ou sistemas IoT são convertidas para CSV para plataformas de análise ou JSON para data lakes. A estrutura de pastas é preservada e os erros são registrados silenciosamente para monitoramento.
Formate ou minifique documentos XML no servidor
Plataformas de conteúdo e sistemas editoriais usam o Total XML ConverterX para formatar XML bruto em forma legível para editores, ou minificar XML verboso para reduzir o tamanho de armazenamento e transferência. Processe estruturas XML sofisticadas em lote mantendo intacta a hierarquia original do documento.
Converta submissões XML para relatórios PDF para auditores
Setores regulamentados recebem ou geram dados XML para protocolos de conformidade. O Total XML ConverterX converte esses arquivos XML em relatórios PDF para revisão de auditores ou em CSV para importação em bancos de dados de conformidade — funcionando sem supervisão em servidores sem interrupções de interface gráfica e com registro completo de erros.
O Total XML Converter X inclui o XMLConverterX.exe, um binario de console que pode ser acionado a partir de scripts, tarefas agendadas, executores de CI ou qualquer servico de back-end. A saida cobre o lado de dados (JSON, CSV, Excel, SQL, DBF, Access) e o lado de documentos (PDF, HTML, DOC, RTF, TXT, TIFF, JPEG, PNG). As receitas abaixo cobrem os casos sobre os quais os clientes do SDK perguntam com mais frequencia.
A chamada mais simples possivel — uma origem, uma saida, um formato de destino.
XMLConverterX.exe "C:\inbox\invoice.xml" "C:\out\invoice.pdf" -cPDF
A maneira mais rapida de alimentar XML legado em um pipeline JSON moderno. A mascara casa com cada XML na pasta; a saida produz um arquivo JSON por entrada.
XMLConverterX.exe "C:\inbox\*.xml" "C:\out\" -cJSON
-detectcell infere colunas numericas, de data e de texto a partir dos dados para que os numeros permanecam somaveis na pasta de trabalho resultante. -plain aplana elementos aninhados em uma unica tabela larga.
XMLConverterX.exe "C:\reports\*.xml" "C:\out\" -cExcel -detectcell -plain
Localidades europeias, parsers downstream e importacoes de planilhas todos querem separadores diferentes. -separator define o separador de campo; -comma define o caractere de aspas (use codigos de caractere como #39 para um apostrofo).
XMLConverterX.exe "C:\inbox\*.xml" "C:\out\" -cCSV -separator ";" -comma "\""
Quando o XML de origem nao corresponde ao esquema de destino, passe-o por um XSLT primeiro. -xslt aplica a folha de estilos a cada entrada em tempo real — sem necessidade de pipeline em duas etapas.
XMLConverterX.exe "C:\inbox\*.xml" "C:\out\" -cPDF -xslt "C:\xsl\invoice-to-pdf.xsl"
A flag -method controla como a estrutura XML se torna saida visivel. table expande elementos repetidos em linhas; highlight renderiza a arvore XML com colorizacao de sintaxe (bom para revisao humana); report gera um relatorio tabular baseado em um arquivo de definicao de tabelas.
XMLConverterX.exe "C:\inbox\config.xml" "C:\out\config.pdf" -cPDF -method highlight
XMLConverterX.exe "C:\inbox\orders.xml" "C:\out\orders.xlsx" -cExcel -method report -tables "C:\schemas\orders.tbl"
Para data lakes e arquivos de documentos organizados em subpastas. -Recurse percorre os subdiretorios; -kfs recria a mesma arvore no lado da saida em vez de aplanar tudo em um unico balde.
XMLConverterX.exe "C:\datalake\*.xml" "C:\out\" -cJSON -Recurse -kfs
Junte uma pasta de XMLs pequenos em um unico PDF de varias paginas para revisao ou auditoria. -sort name mantem a ordem previsivel.
XMLConverterX.exe "C:\reports\*.xml" "C:\out\daily-report.pdf" -cPDF -combine -sort name
O padrao classico de back-end: um observador deposita arquivos em inbox, o conversor a esvazia, os arquivos processados vao para done, e os arquivos que ele nao conseguiu tratar vao para quarantine para revisao. -IgnoreInvalidSource impede que um unico arquivo defeituoso aborte todo o lote.
XMLConverterX.exe "C:\inbox\*.xml" "C:\out\" -cJSON -msuccess "C:\done" -merror "C:\quarantine" -IgnoreInvalidSource -threads 0
Quando o upstream grava um arquivo de fila e o conversor o consome, os caminhos de arquivo nao deveriam estar codificados na linha de comando. -list le mascaras de arquivo (uma por linha) de um arquivo de texto. O destino aceita as macros <DATE> e <TIME> para que cada execucao receba seu proprio diretorio.
XMLConverterX.exe -list "C:\queues\nightly.txt" "C:\out\<DATE>\" -cPDF -log "C:\logs\xmlcx.log" -verbosity detail -logmode append
Atualizado Thu, 11 Jun 2026
(apenas $750.00)
-c.new COM("XMLConverter.XMLConverterX") em PHP, new XMLConverterX() em .NET, win32com.client.Dispatch em Python, WIN32OLE.new em Ruby. Como alternativa, o binário de linha de comando XMLConverterX.exe pode ser invocado a partir de qualquer processo, agendador ou script de shell. Também há streaming direto via ConvertToStream para respostas web em ASP/PHP.-xslt "C:\xsl\stylesheet.xsl" para aplicar uma XSLT a cada XML de entrada em tempo real. A saída é então gravada no formato selecionado por -c. Isso reduz o que seria um pipeline de duas etapas (processador XSLT + conversor) a uma única chamada de binário. Usamos isso para formatos de fatura, traduções EDI e fluxos de mapeamento de schema.-msuccess "C:\done" move arquivos convertidos com sucesso para uma pasta de concluídos, -merror "C:\quarantine" roteia falhas para uma pasta de quarentena, e -IgnoreInvalidSource impede que um único arquivo defeituoso interrompa todo o lote. Combinado com a entrada por arquivo de fila -list e -log -verbosity detail, o binário se encaixa perfeitamente em um pipeline de backend orientado por watcher..md como formato de saída e o conversor grava a hierarquia de elementos do XML como títulos Markdown: a raiz vira #, elementos filhos viram ##/###/#### por profundidade, atributos aparecem como uma lista chave-valor sob cada título. Elementos irmãos repetidos com a mesma tag e estrutura filha idêntica são detectados automaticamente e renderizados como tabelas GFM com colunas tipadas, a mesma renderização usada para XML-para-XLSX. Um bloco YAML frontmatter carrega source_file, root_element, namespaces, element_count, esquema detectado (quando XSD/DTD é referenciado) e um hash binário. Faz parte do CoolUtils RAG Adapter — o mesmo contrato Markdown é compartilhado por todos os produtos Total Converter X.binary_hash para proveniência e um array chunks_hint. Habilite com -Docling na linha de comando.-xslt "C:\xsl\reshape.xsl" junto com -cMD -Docling e a XSLT é aplicada a cada entrada em tempo real, e então o resultado é gravado como Markdown. Isso reduz o que seria um pipeline de duas etapas (processador XSLT + conversor) a uma única chamada de binário — útil para traduções EDI, formatos de fatura e fluxos de mapeamento de schema que precisam chegar a um índice RAG em uma forma normalizada específica..md é GFM puro com um bloco YAML frontmatter, então o UnstructuredMarkdownLoader do LangChain, o MarkdownReader do LlamaIndex, o MarkdownToDocument do Haystack e as ferramentas de arquivo MCP do Claude Code lêem diretamente. Como os XPaths dos elementos ficam registrados no sidecar, uma citação na resposta do modelo pode resolver de volta ao elemento exato da origem. Para Claude, ChatGPT ou qualquer UI de chat, você pode colar o Markdown no contexto tal como está.Baixe a versão de teste gratuita e converta seus arquivos em minutos.
Não é necessário cartão de crédito ou email.