Da XML a JSON, XML, CSV, PDF tramite linea di comando
Windows
2000/2003/Vista
7/8/10/11
and
2012/2016/2019/2022 Server
and
Docker/Citrix/Wine
Total XML Converter X è un SDK lato server che converte XML in JSON, CSV, XLSX, PDF, HTML, SQL, DBF, Access e oltre 10 altri formati — con pieno supporto XSLT e senza librerie XML esterne sul server. Funziona in modalità headless: nessuna GUI, nessuna finestra di dialogo, nessun popup. Total XML Converter X include sia un binario da riga di comando sia un'interfaccia ActiveX/COM, quindi si integra in ASP, PHP, .NET, Python, Ruby, Java e in qualsiasi altro backend compatibile con COM. I formati di output si dividono in due gruppi:
-xslt — senza pipeline a due passaggi
table (espande gli elementi ripetuti in righe), highlight (albero con evidenziazione sintattica per la revisione umana), report (report tabellare da un file di definizione tabelle)
-Recurse -kfs), la combinazione batch di più XML in un unico PDF (-combine -sort name) e l'elaborazione tramite file di coda (-list) per esecuzioni non presidiate. I flag pensati per il server -msuccess, -merror e -IgnoreInvalidSource permettono di indirizzare un singolo file difettoso in una cartella di quarantena senza interrompere il batch.Il programma elabora l'XML direttamente — nessun serializzatore XML .NET necessario, nessuna installazione di Saxon o Xalan, nessuna sorpresa di dipendenza msxml dopo un aggiornamento di Windows.
L'elevata velocità di conversione e le conversioni in batch rendono il processo semplice e privo di tediosità. Provalo gratuitamente (periodo di prova di 30 giorni, senza limitazioni) e scopri che vale davvero il suo prezzo.
Alcune delle conversioni di formato attualmente supportate:
|
|
|
(incluso un periodo di prova GRATUITO di 30 giorni)
(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 sembra perfetto per il mio uso, anche se lo utilizziamo solo per convertire vecchi file .xml in altri formati. Abbiamo scelto il programma per la capacità di elaborare file XSLT. Avevamo oltre 6.000 XML e il convertitore ha completato il lavoro in meno di un'ora. Grazie!"
Jean Robitaille
Sparktown Christian School
"Traduciamo i feed XML dei partner (ordini, ASN, fatture) nel nostro schema JSON interno. Total XML Converter X con -xslt è il motore: ogni partner ha il proprio foglio di stile, il convertitore lo applica al volo e il JSON finisce direttamente in Kafka. Abbiamo sostituito un container Java/Saxon che consumava 2 GB di RAM per lo stesso lavoro. Il binario Windows usa circa 60 MB e gira a doppia velocità."
Lukas R.
Senior Backend Developer at an EDI integration vendor
"I nostri clienti inviano dichiarazioni di conformità XBRL/XML che dobbiamo renderizzare in PDF per i revisori umani. Total XML Converter X con -method report e un file di definizione tabelle produce un output PDF pulito e impaginato senza dover scrivere il nostro renderer. L'instradamento di coda -msuccess/-merror è esattamente ciò di cui avevamo bisogno per la pipeline guidata da watcher. Cinque anni in produzione, nessuna sorpresa."
Carmen V.
DevOps Engineer at a regulatory-reporting platform
"Abbiamo integrato Total XML Converter X nel nostro strumento di migrazione dati con la Royalty-Free License. Il pagamento una tantum per progetto era una frazione di quanto chiedeva Altova MapForce con un abbonamento per sviluppatore. Il nostro installer distribuisce e registra l'ActiveX, la nostra app lo chiama direttamente, gli utenti finali vedono solo la nostra UI. La limitazione a 32 bit dell'ActiveX ci è costata un paio di giorni di rilavorazione della pipeline, ma il supporto è stato reattivo quando abbiamo chiesto soluzioni alternative."
Halil B.
Independent Software Vendor
"I clienti ci inviano via email dump XML notturni da venti diversi sistemi ERP. Usiamo Total XML Converter X per appiattire tutto in XLSX con -detectcell -plain in modo che gli analisti possano fare pivot direttamente senza uno strumento ETL separato. Il throughput è di circa 200 XML al secondo sul nostro hardware per file tipici sotto il MB. La CLI è deterministica tra le esecuzioni: stesso input, stessi flag, byte bit-identici."
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 include XMLConverterX.exe, un binario console che puoi pilotare da script, attività pianificate, runner CI o qualsiasi servizio backend. L'output copre il lato dati (JSON, CSV, Excel, SQL, DBF, Access) e il lato documento (PDF, HTML, DOC, RTF, TXT, TIFF, JPEG, PNG). Le ricette qui sotto coprono i casi che sentiamo più spesso dai clienti SDK.
La chiamata più semplice possibile — un sorgente, un output, un formato di destinazione.
XMLConverterX.exe "C:\inbox\invoice.xml" "C:\out\invoice.pdf" -cPDF
Il modo più rapido per alimentare XML legacy in una pipeline JSON moderna. La maschera corrisponde a ogni XML nella cartella; l'output ottiene un file JSON per input.
XMLConverterX.exe "C:\inbox\*.xml" "C:\out\" -cJSON
-detectcell deduce colonne numeriche, di data e di testo dai dati così le cifre rimangono sommabili nella cartella di lavoro risultante. -plain appiattisce gli elementi annidati in un'unica tabella ampia.
XMLConverterX.exe "C:\reports\*.xml" "C:\out\" -cExcel -detectcell -plain
Locale europee, parser a valle e import in fogli di calcolo vogliono tutti separatori diversi. -separator imposta il separatore di campo; -comma imposta il carattere virgolette (usa codici come #39 per un apostrofo).
XMLConverterX.exe "C:\inbox\*.xml" "C:\out\" -cCSV -separator ";" -comma "\""
Quando l'XML sorgente non corrisponde allo schema di destinazione, fallo passare prima per un XSLT. -xslt applica il foglio di stile a ogni input al volo — non serve una pipeline a due step.
XMLConverterX.exe "C:\inbox\*.xml" "C:\out\" -cPDF -xslt "C:\xsl\invoice-to-pdf.xsl"
Il flag -method controlla come la struttura XML diventa output visibile. table espande gli elementi ripetuti in righe; highlight renderizza l'albero XML con colorazione di sintassi (buono per la revisione umana); report genera un report tabellare basato su un file di definizione tabelle.
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"
Per data lake e archivi documentali organizzati in sottocartelle. -Recurse attraversa le sottodirectory; -kfs ricrea lo stesso albero lato output invece di appiattire tutto in un unico bucket.
XMLConverterX.exe "C:\datalake\*.xml" "C:\out\" -cJSON -Recurse -kfs
Aggrega una cartella di piccoli XML in un unico PDF multi-pagina per revisione o audit. -sort name mantiene l'ordine prevedibile.
XMLConverterX.exe "C:\reports\*.xml" "C:\out\daily-report.pdf" -cPDF -combine -sort name
Lo schema standard del backend: un watcher rilascia i file in inbox, il convertitore la svuota, i file elaborati finiscono in done, i file che non è riuscito a gestire finiscono in quarantine per la revisione. -IgnoreInvalidSource evita che un singolo file difettoso interrompa l'intero batch.
XMLConverterX.exe "C:\inbox\*.xml" "C:\out\" -cJSON -msuccess "C:\done" -merror "C:\quarantine" -IgnoreInvalidSource -threads 0
Quando l'upstream scrive un file di coda e il convertitore lo consuma, i percorsi file non dovrebbero essere codificati nella riga di comando. -list legge le maschere file (una per riga) da un file di testo. La destinazione accetta le macro <DATE> e <TIME> così ogni esecuzione ottiene il proprio bucket.
XMLConverterX.exe -list "C:\queues\nightly.txt" "C:\out\<DATE>\" -cPDF -log "C:\logs\xmlcx.log" -verbosity detail -logmode append
Aggiornato Fri, 01 May 2026
(solo $750.00)
-c.new COM("XMLConverter.XMLConverterX") in PHP, new XMLConverterX() in .NET, win32com.client.Dispatch in Python, WIN32OLE.new in Ruby. In alternativa, il binario da riga di comando XMLConverterX.exe può essere invocato da qualsiasi processo, scheduler o script di shell. È disponibile anche lo streaming diretto tramite ConvertToStream per le risposte web ASP/PHP.-xslt "C:\xsl\stylesheet.xsl" per applicare un XSLT a ogni XML in input al volo. L'output viene quindi scritto nel formato selezionato da -c. Questo riduce a una singola chiamata binaria ciò che altrimenti sarebbe una pipeline a due passaggi (processore XSLT + convertitore). Lo usiamo per formati di fattura, traduzioni EDI e flussi di mappatura schemi.-msuccess "C:\done" sposta i file convertiti con successo in una cartella done, -merror "C:\quarantine" instrada i fallimenti in una cartella di quarantena e -IgnoreInvalidSource impedisce a un singolo file difettoso di interrompere l'intero batch. Combinato con l'input da file di coda -list e con -log -verbosity detail, il binario si inserisce con pulizia in una pipeline backend guidata da watcher.Scarica la versione di prova e converti i tuoi file in pochi minuti.
Non è richiesta carta di credito o email.