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:
|
|
|
Los agentes LLM (Claude, ChatGPT, Cursor, Cline) y los frameworks de recuperación (LangChain, LlamaIndex, Haystack) no leen bien XML en bruto — las etiquetas y atributos anidados son ruido para los modelos de embeddings. Total XML Converter X escribe XML como GitHub-Flavored Markdown con frontmatter estructurado y un sidecar opcional compatible con Docling, de modo que un documento XML llega a su vector store como una representación de texto limpia y con conciencia de secciones — con la jerarquía de elementos asignada a encabezados Markdown y los elementos repetidos convertidos en tablas, no como una única cadena gigante de paréntesis angulares.
Lo que obtiene al apuntar a salida Markdown:
#, los elementos hijos en ## / ### / #### según la profundidad; los atributos se representan como una lista clave-valor justo bajo cada encabezado
table usado para XML-a-XLSX entra en juego para Markdown: los elementos hermanos con la misma etiqueta y forma de hijos idéntica se convierten en filas de una sola tabla con columnas tipadas detectadas automáticamente
-xslt stylesheet.xsl para remodelar el XML antes del renderizado Markdown, la misma canalización de un solo paso utilizada para los demás formatos de salida
source_file, format (MIME), root_element, namespaces, element_count, profundidad, esquema detectado (cuando se referencia XSD/DTD), generator, created y un binary_hash para trazabilidad
.docling.json — JSON con esquema Docling, con columnas tipadas de tablas detectadas automáticamente (con unidades como EUR, pcs, %), anclas por elemento al XML de origen (XPath), mapa de namespaces y un array chunks_hint que su splitter puede leer
Esto es el CoolUtils RAG Adapter — un contrato Markdown unificado compartido por cada producto Total Converter X. La especificación completa, un .md + .docling.json de ejemplo y los fragmentos de integración están en la página de Coolutils Converter X — RAG Adapter.
(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
Equipos de desarrollo que convierten XML a CSV, JSON y PDF en servidores mediante ActiveX o línea de comandos
Potencia herramientas de servidor de XML a CSV y XML a JSON
Los desarrolladores web integran Total XML ConverterX mediante ActiveX en aplicaciones ASP o PHP. Los usuarios cargan archivos XML a través de un navegador, el servidor los convierte a CSV, JSON o PDF de forma silenciosa sin mensajes emergentes y devuelve el resultado. Se incluyen archivos de código de ejemplo para acelerar la integración.
Transforme feeds XML en los formatos que requieren otros sistemas
Los equipos de TI empresarial usan Total XML ConverterX para conectar sistemas que hablan diferentes lenguajes de datos. Convierta exportaciones XML de una plataforma en CSV para herramientas basadas en hojas de cálculo, JSON para APIs web o PDF para revisión humana, todo automatizado mediante línea de comandos con marcas de tiempo originales conservadas.
Convierta por lotes feeds de datos XML en canalizaciones programadas
Los equipos de ingeniería de datos añaden Total XML ConverterX como paso de conversión en flujos de trabajo ETL. Los volcados XML nocturnos de bases de datos, APIs de socios o sistemas IoT se convierten a CSV para plataformas de análisis o JSON para data lakes. La estructura de carpetas se conserva y los errores se registran en silencio para su monitorización.
Formatee o minifique documentos XML en el servidor
Las plataformas de contenido y los sistemas de publicación usan Total XML ConverterX para dar formato a XML sin procesar en forma legible para los editores, o minificar XML verboso para reducir el tamaño de almacenamiento y transferencia. Procese estructuras XML sofisticadas en lote manteniendo intacta la jerarquía del documento original.
Convierta presentaciones XML a informes PDF para auditores
Los sectores regulados reciben o generan datos XML para expedientes de cumplimiento. Total XML ConverterX convierte estos archivos XML a informes PDF para revisión del auditor o a CSV para importar en bases de datos de cumplimiento, ejecutándose de forma desatendida en servidores sin interrupciones de la interfaz gráfica y con registro completo de errores.
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..md como formato de salida y el conversor escribe la jerarquía de elementos XML como encabezados Markdown: la raíz es #, los elementos hijos son ##/###/#### según la profundidad, los atributos aparecen como una lista clave-valor bajo cada encabezado. Los elementos hermanos repetidos con la misma etiqueta y forma de hijos idéntica se detectan automáticamente y se renderizan como tablas GFM con columnas tipadas, el mismo renderizado usado para XML-a-XLSX. Un bloque YAML frontmatter incluye source_file, root_element, namespaces, element_count, esquema detectado (cuando se referencia XSD/DTD) y un hash binario. Esto forma parte del CoolUtils RAG Adapter — el mismo contrato Markdown lo comparten todos los productos Total Converter X.binary_hash para trazabilidad y un array chunks_hint. Actívelo con -Docling en la línea de comandos.-xslt "C:\xsl\reshape.xsl" junto con -cMD -Docling y la XSLT se aplica a cada entrada al vuelo, y luego el resultado se escribe como Markdown. Esto colapsa lo que de otro modo sería una canalización de dos pasos (procesador XSLT + conversor) en una sola llamada de binario — útil para traducciones EDI, formatos de factura y flujos de trabajo de mapeo de esquemas que necesitan llegar a un índice RAG con una forma normalizada concreta..md es GFM plano con un bloque YAML frontmatter, por lo que el UnstructuredMarkdownLoader de LangChain, el MarkdownReader de LlamaIndex, el MarkdownToDocument de Haystack y las herramientas de archivo MCP de Claude Code lo leen directamente. Como los XPath de los elementos quedan registrados en el sidecar, una cita en la respuesta del modelo puede resolverse al elemento de origen exacto. Para Claude, ChatGPT o cualquier UI de chat puede pegar el Markdown en el contexto tal cual.Descargue la versión de prueba y convierta sus archivos en minutos.
No se requiere tarjeta de crédito ni email.