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:
|
|
|
(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
Development teams that convert XML to CSV, JSON, and PDF on servers via ActiveX or command line
Power server-side XML-to-CSV and XML-to-JSON tools
Web developers integrate Total XML ConverterX via ActiveX into ASP or PHP applications. Users upload XML files through a browser, the server converts them to CSV, JSON, or PDF silently with no pop-up messages, and returns the result. Sample code files are included to speed up integration.
Transform XML feeds into formats other systems require
Enterprise IT teams use Total XML ConverterX to bridge systems that speak different data languages. Convert XML exports from one platform into CSV for spreadsheet-based tools, JSON for web APIs, or PDF for human review — all automated via command line with original timestamps preserved.
Batch-convert XML data feeds in scheduled pipelines
Data engineering teams add Total XML ConverterX as a conversion step in ETL workflows. Nightly XML dumps from databases, partner APIs, or IoT systems are converted to CSV for analytics platforms or JSON for data lakes. Folder structure is preserved and errors are logged silently for monitoring.
Format or minify XML documents on the server
Content platforms and publishing systems use Total XML ConverterX to format raw XML into human-readable form for editors, or minify verbose XML to reduce storage and transfer size. Process sophisticated XML structures in batch while keeping the original document hierarchy intact.
Convert XML submissions to PDF reports for auditors
Regulated industries receive or generate XML data for compliance filings. Total XML ConverterX converts these XML files to PDF reports for auditor review or to CSV for import into compliance databases — running unattended on servers with no GUI interruptions and full error logging.
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 Fri, 01 May 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.Baixe a versão de teste gratuita e converta seus arquivos em minutos.
Não é necessário cartão de crédito ou email.