XML a JSON, XML, CSV, PDF vía línea de comandos
Windows
2000/2003/Vista
7/8/10/11
and
2012/2016/2019/2022 Server
and
Docker/Citrix/Wine
Total XML Converter X es un SDK para servidor que convierte XML a JSON, CSV, XLSX, PDF, HTML, SQL, DBF, Access y más de 10 formatos adicionales — con soporte completo de XSLT y sin necesidad de bibliotecas XML externas en el servidor. Funciona en modo headless: sin interfaz gráfica, sin diálogos, sin ventanas emergentes. Total XML Converter X incluye tanto un binario de línea de comandos como una interfaz ActiveX/COM, por lo que se integra en ASP, PHP, .NET, Python, Ruby, Java y cualquier otro backend compatible con COM. Los formatos de salida se dividen en dos grupos:
-xslt — sin necesidad de un proceso de dos pasos
table (expande elementos repetidos en filas), highlight (árbol con sintaxis coloreada para revisión humana), report (informe tabular a partir de un archivo de definición de tablas)
-Recurse -kfs), combinación por lotes de varios XML en un único PDF (-combine -sort name) y procesamiento de archivos de cola (-list) para ejecuciones desatendidas. Los flags orientados a servidor -msuccess, -merror e -IgnoreInvalidSource permiten que un archivo defectuoso se desvíe a una carpeta de cuarentena sin abortar el lote completo.El programa procesa XML directamente — sin necesidad del serializador XML de .NET, sin instalar Saxon o Xalan, sin sorpresas con dependencias de msxml tras una actualización de Windows.
La alta velocidad de conversión y los procesos por lotes hacen que el trabajo sea sencillo y libre de tedio. Pruébelo gratis (período de evaluación de 30 días sin limitaciones) y descubrirá que vale realmente cada centavo.
Algunas de las conversiones de formato actualmente soportadas:
|
|
|
(incluye 30 días de prueba GRATUITA)
(solo $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;
"Total XML Converter X parece ser perfecto para mi uso, aunque solo lo utilizamos para convertir archivos .xml antiguos a otros formatos. Elegimos el programa por su capacidad para procesar archivos XSLT. Teníamos más de 6.000 XML y el conversor hizo el trabajo en menos de una hora. ¡Gracias!"
Jean Robitaille
Sparktown Christian School
"Traducimos los feeds XML de socios (pedidos, ASN, facturas) a nuestro esquema JSON interno. Total XML Converter X con -xslt es el motor: cada socio tiene su propia hoja de estilos, el conversor la aplica al vuelo y el JSON entra directamente en Kafka. Reemplazamos un contenedor Java/Saxon que consumía 2 GB de RAM para el mismo trabajo. El binario de Windows usa unos 60 MB y rinde el doble."
Lukas R.
Senior Backend Developer at an EDI integration vendor
"Nuestros clientes envían declaraciones de cumplimiento en XBRL/XML que tenemos que renderizar en PDF para los auditores humanos. Total XML Converter X con -method report y un archivo de definición de tablas produce una salida PDF limpia y paginada sin que tengamos que escribir nuestro propio renderizador. El enrutamiento de cola con -msuccess/-merror es exactamente lo que necesitábamos para la pipeline dirigida por watcher. Cinco años en producción, sin sorpresas."
Carmen V.
DevOps Engineer at a regulatory-reporting platform
"Empaquetamos Total XML Converter X dentro de nuestra herramienta de migración de datos bajo la Licencia Royalty-Free. La cuota única por proyecto fue una fracción de lo que pedía Altova MapForce con su suscripción por desarrollador. Nuestro instalador despliega y registra el ActiveX, nuestra app lo invoca directamente y los usuarios finales solo ven nuestra interfaz. La limitación de ActiveX a 32 bits nos costó un par de días de retrabajo en la pipeline, pero el soporte fue receptivo cuando preguntamos por alternativas."
Halil B.
Independent Software Vendor
"Los clientes nos envían por correo dumps XML nocturnos de veinte sistemas ERP distintos. Usamos Total XML Converter X para aplanar todo a XLSX con -detectcell -plain, de modo que los analistas pueden hacer pivot tables directamente sin una herramienta ETL adicional. El throughput ronda los 200 XML por segundo en nuestro hardware con archivos típicos de menos de 1 MB. La CLI es determinista entre ejecuciones; misma entrada, mismos 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.
Total XML Converter X incluye XMLConverterX.exe, un binario de consola que puedes controlar desde scripts, tareas programadas, runners de CI o cualquier servicio de backend. La salida cubre el lado de datos (JSON, CSV, Excel, SQL, DBF, Access) y el lado de documento (PDF, HTML, DOC, RTF, TXT, TIFF, JPEG, PNG). Las recetas siguientes cubren los casos que más nos consultan los clientes con licencia SDK.
La llamada más sencilla posible — un origen, una salida, un formato de destino.
XMLConverterX.exe "C:\inbox\invoice.xml" "C:\out\invoice.pdf" -cPDF
La forma más rápida de alimentar XML heredado en una cadena JSON moderna. La máscara coincide con cada XML de la carpeta; la salida produce un archivo JSON por entrada.
XMLConverterX.exe "C:\inbox\*.xml" "C:\out\" -cJSON
-detectcell infiere columnas numéricas, de fecha y de texto a partir de los datos para que las cifras sigan siendo sumables en el libro resultante. -plain aplana los elementos anidados en una única tabla ancha.
XMLConverterX.exe "C:\reports\*.xml" "C:\out\" -cExcel -detectcell -plain
Las localizaciones europeas, los parsers posteriores y las importaciones a hoja de cálculo quieren todos separadores distintos. -separator establece el separador de campo; -comma establece el carácter de comilla (usa códigos de carácter como #39 para un apóstrofo).
XMLConverterX.exe "C:\inbox\*.xml" "C:\out\" -cCSV -separator ";" -comma "\""
Cuando el XML de origen no coincide con el esquema de destino, pásalo primero por un XSLT. -xslt aplica la hoja de estilo a cada entrada al vuelo — no necesitas una cadena de dos pasos.
XMLConverterX.exe "C:\inbox\*.xml" "C:\out\" -cPDF -xslt "C:\xsl\invoice-to-pdf.xsl"
El flag -method controla cómo se hace visible la estructura XML en la salida. table expande los elementos repetidos en filas; highlight renderiza el árbol XML con coloreado de sintaxis (bueno para revisión humana); report genera un informe tabular basado en un archivo de definición de tablas.
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 y archivos documentales organizados en subcarpetas. -Recurse recorre los subdirectorios; -kfs recrea el mismo árbol en el lado de salida en lugar de aplanarlo todo en un único contenedor.
XMLConverterX.exe "C:\datalake\*.xml" "C:\out\" -cJSON -Recurse -kfs
Recopila una carpeta de XMLs pequeños en un único PDF multipágina para revisión o auditoría. -sort name mantiene el orden predecible.
XMLConverterX.exe "C:\reports\*.xml" "C:\out\daily-report.pdf" -cPDF -combine -sort name
El patrón estándar de backend: un vigilante deja archivos en inbox, el convertidor la vacía, los archivos procesados van a done, los que no pudo procesar van a quarantine para revisión. -IgnoreInvalidSource evita que un único archivo defectuoso aborte todo el lote.
XMLConverterX.exe "C:\inbox\*.xml" "C:\out\" -cJSON -msuccess "C:\done" -merror "C:\quarantine" -IgnoreInvalidSource -threads 0
Cuando algo aguas arriba escribe un archivo de cola y el convertidor lo consume, las rutas de archivo no deberían codificarse en la línea de comandos. -list lee máscaras de archivo (una por línea) desde un archivo de texto. El destino acepta las macros <DATE> y <TIME> para que cada ejecución reciba su propio contenedor.
XMLConverterX.exe -list "C:\queues\nightly.txt" "C:\out\<DATE>\" -cPDF -log "C:\logs\xmlcx.log" -verbosity detail -logmode append
Actualizado Fri, 01 May 2026
(solo $750.00)
-c.new COM("XMLConverter.XMLConverterX") en PHP, new XMLConverterX() en .NET, win32com.client.Dispatch en Python, WIN32OLE.new en Ruby. Como alternativa, el binario de línea de comandos XMLConverterX.exe puede invocarse desde cualquier proceso, planificador o script de shell. También está disponible el streaming directo mediante ConvertToStream para respuestas web ASP/PHP.-xslt "C:\xsl\stylesheet.xsl" para aplicar una XSLT a cada XML de entrada al vuelo. La salida se escribe luego en el formato seleccionado por -c. Esto reduce a una sola llamada de binario lo que de otro modo sería un proceso de dos pasos (procesador XSLT + convertidor). Lo usamos para formatos de facturación, traducciones EDI y flujos de mapeo de esquemas.-msuccess "C:\done" mueve los archivos convertidos correctamente a una carpeta de finalizados, -merror "C:\quarantine" desvía los fallos a una carpeta de cuarentena, e -IgnoreInvalidSource evita que un único archivo defectuoso aborte el lote completo. Combinado con la entrada por archivo de cola -list y -log -verbosity detail, el binario encaja limpiamente en una pipeline de backend dirigida por watcher.Descargue la versión de prueba y convierta sus archivos en minutos.
No se requiere tarjeta de crédito ni email.