XML naar JSON, XML, CSV, PDF via de opdrachtregel
Windows
2000/2003/Vista
7/8/10/11
and
2012/2016/2019/2022 Server
and
Docker/Citrix/Wine
Total XML Converter X is een server-side SDK die XML omzet naar JSON, CSV, XLSX, PDF, HTML, SQL, DBF, Access en meer dan 10 andere formaten — met volledige XSLT-ondersteuning en zonder externe XML-bibliotheken op de server. Hij draait headless: geen GUI, geen dialoogvensters, geen pop-ups. Total XML Converter X wordt geleverd met zowel een command-line binary als een ActiveX/COM-interface, zodat hij direct inzetbaar is in ASP, PHP, .NET, Python, Ruby, Java en elke andere COM-compatibele backend. De uitvoerformaten zijn verdeeld in twee groepen:
-xslt — geen pijplijn in twee stappen nodig
table (herhaalde elementen uitvouwen tot rijen), highlight (syntactisch gekleurde boom voor menselijke beoordeling), report (tabelvormig rapport op basis van een tabellen-definitiebestand)
-Recurse -kfs), batchgewijs samenvoegen van meerdere XML's tot één PDF (-combine -sort name) en wachtrijbestandverwerking (-list) voor onbewaakte runs. Servervriendelijke vlaggen -msuccess, -merror en -IgnoreInvalidSource zorgen ervoor dat één foutief bestand naar een quarantainemap wordt geleid zonder dat de hele batch wordt afgebroken.Het programma verwerkt XML rechtstreeks — geen .NET XML-serializer nodig, geen Saxon- of Xalan-installatie, geen msxml-afhankelijkheidsverrassingen na een Windows-update.
Een hoge conversiesnelheid en batchconversies maken het proces eenvoudig en niet vervelend. Probeer het gratis (30 dagen proefperiode, geen beperkingen) en ontdek dat het zijn geld echt waard is.
Enkele van de momenteel ondersteunde bestandsformaatconversies:
|
|
|
(inclusief 30 dagen GRATIS proefperiode)
(alleen $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 lijkt perfect voor mijn gebruik, hoewel we hem alleen gebruiken om oude .xml-bestanden naar andere formaten te converteren. We kozen het programma vanwege de mogelijkheid om XSLT-bestanden te verwerken. We hadden meer dan 6.000 XML's en de converter klaarde de klus in minder dan een uur. Bedankt!"
Jean Robitaille
Sparktown Christian School
"We vertalen partner-XML-feeds (bestellingen, ASN, facturen) naar ons interne JSON-schema. Total XML Converter X met -xslt is de motor: elke partner heeft zijn eigen stylesheet, de converter past die on the fly toe en de JSON gaat rechtstreeks Kafka in. We vervingen een Java/Saxon-container die 2 GB RAM verslond voor dezelfde taak. De Windows-binary gebruikt ongeveer 60 MB en draait met dubbele doorvoer."
Lukas R.
Senior Backend Developer at an EDI integration vendor
"Onze klanten dienen XBRL/XML-compliance-aangiften in die we als PDF moeten weergeven voor menselijke auditors. Total XML Converter X met -method report en een tabellen-definitiebestand produceert nette, gepagineerde PDF-uitvoer zonder dat we onze eigen renderer hoeven te schrijven. De -msuccess/-merror-wachtrijroutering is precies wat we nodig hadden voor de watcher-gestuurde pijplijn. Vijf jaar in productie, geen verrassingen."
Carmen V.
DevOps Engineer at a regulatory-reporting platform
"We hebben Total XML Converter X gebundeld in onze datamigratietool onder de Royalty-Free License. De eenmalige vergoeding per project was een fractie van wat Altova MapForce vroeg op een per-developer-abonnement. Onze installer levert en registreert de ActiveX, onze app roept hem rechtstreeks aan, eindgebruikers zien alleen onze UI. De 32-bits ActiveX-beperking kostte ons een paar dagen pijplijnaanpassingen, maar de support reageerde snel toen we vroegen om workarounds."
Halil B.
Independent Software Vendor
"Klanten mailen ons elke nacht XML-dumps vanuit twintig verschillende ERP-systemen. We gebruiken Total XML Converter X om alles plat te slaan tot XLSX met -detectcell -plain, zodat analisten direct kunnen pivoteren zonder een aparte ETL-tool. De doorvoer is ongeveer 200 XML's per seconde op onze hardware voor typische bestanden van minder dan een MB. De CLI is deterministisch over runs heen; dezelfde invoer, dezelfde vlaggen, bit-identieke bytes."
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 wordt geleverd met XMLConverterX.exe, een console-binary die u kunt aansturen vanuit scripts, geplande taken, CI-runners of een willekeurige backend-service. Uitvoer dekt de datakant (JSON, CSV, Excel, SQL, DBF, Access) en de documentkant (PDF, HTML, DOC, RTF, TXT, TIFF, JPEG, PNG). De onderstaande recepten dekken de gevallen die we het vaakst horen van SDK-klanten.
De kleinst mogelijke aanroep — één bron, één uitvoer, één doelformaat.
XMLConverterX.exe "C:\inbox\invoice.xml" "C:\out\invoice.pdf" -cPDF
De snelste manier om legacy-XML in een moderne JSON-pijplijn te voeden. Het masker komt overeen met elke XML in de map; uitvoer geeft één JSON-bestand per invoer.
XMLConverterX.exe "C:\inbox\*.xml" "C:\out\" -cJSON
-detectcell leidt numerieke, datum- en tekstkolommen af uit de data zodat cijfers in de resulterende werkmap optelbaar blijven. -plain plat geneste elementen af tot één brede tabel.
XMLConverterX.exe "C:\reports\*.xml" "C:\out\" -cExcel -detectcell -plain
Europese locales, downstream-parsers en spreadsheet-imports willen allemaal verschillende scheidingstekens. -separator stelt het veldscheidingsteken in; -comma stelt het aanhalingsteken in (gebruik tekencodes zoals #39 voor een apostrof).
XMLConverterX.exe "C:\inbox\*.xml" "C:\out\" -cCSV -separator ";" -comma "\""
Wanneer de bron-XML niet overeenkomt met het doelschema, voer hem eerst door een XSLT. -xslt past de stylesheet on-the-fly toe op elke invoer — geen tweestaps-pijplijn nodig.
XMLConverterX.exe "C:\inbox\*.xml" "C:\out\" -cPDF -xslt "C:\xsl\invoice-to-pdf.xsl"
De vlag -method bepaalt hoe XML-structuur zichtbare uitvoer wordt. table breidt herhaalde elementen uit naar rijen; highlight rendert de XML-boom met syntax-kleuring (goed voor menselijke beoordeling); report genereert een tabular rapport gebaseerd op een tabel-definitiebestand.
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"
Voor data lakes en documentarchieven die in submappen zijn georganiseerd. -Recurse doorloopt subdirectories; -kfs recreëert dezelfde boom aan de uitvoerkant in plaats van alles in één bak plat te slaan.
XMLConverterX.exe "C:\datalake\*.xml" "C:\out\" -cJSON -Recurse -kfs
Roll-up van een map met kleine XML's tot één multipage-PDF voor beoordeling of audit. -sort name houdt de volgorde voorspelbaar.
XMLConverterX.exe "C:\reports\*.xml" "C:\out\daily-report.pdf" -cPDF -combine -sort name
Het standaard backend-patroon: een watcher zet bestanden in inbox, de converter leegt deze, verwerkte bestanden komen in done terecht en bestanden die niet konden worden verwerkt belanden in quarantine voor controle. -IgnoreInvalidSource voorkomt dat één slecht bestand de hele batch afbreekt.
XMLConverterX.exe "C:\inbox\*.xml" "C:\out\" -cJSON -msuccess "C:\done" -merror "C:\quarantine" -IgnoreInvalidSource -threads 0
Wanneer upstream een wachtrijbestand schrijft en de converter het verwerkt, mogen de bestandspaden niet in de opdrachtregel worden gecodeerd. -list leest bestandsmaskers (één per regel) uit een tekstbestand. De bestemming accepteert <DATE> en <TIME> macro's zodat elke run zijn eigen bak krijgt.
XMLConverterX.exe -list "C:\queues\nightly.txt" "C:\out\<DATE>\" -cPDF -log "C:\logs\xmlcx.log" -verbosity detail -logmode append
Bijgewerkt Fri, 01 May 2026
(alleen $750.00)
-c-vlag.new COM("XMLConverter.XMLConverterX") in PHP, new XMLConverterX() in .NET, win32com.client.Dispatch in Python, WIN32OLE.new in Ruby. Als alternatief kan de XMLConverterX.exe-command-line-binary vanuit elk proces, planner of shellscript worden aangeroepen. Direct streamen via ConvertToStream is ook beschikbaar voor ASP/PHP-webresponses.-xslt "C:\xsl\stylesheet.xsl" om on the fly een XSLT toe te passen op elke invoer-XML. De uitvoer wordt vervolgens geschreven in het formaat dat is geselecteerd via -c. Dit reduceert wat anders een tweestaps-pijplijn zou zijn (XSLT-processor + converter) tot één enkele binary-aanroep. Wij gebruiken dit voor factuurformaten, EDI-vertalingen en schema-mappingworkflows.-msuccess "C:\done" verplaatst succesvol geconverteerde bestanden naar een afgehandeld-map, -merror "C:\quarantine" stuurt mislukkingen naar een quarantainemap, en -IgnoreInvalidSource voorkomt dat één foutief bestand de hele batch afbreekt. Gecombineerd met -list-wachtrijbestand-invoer en -log -verbosity detail past de binary netjes in een watcher-gestuurde backend-pijplijn.Download de gratis proefversie en converteer uw bestanden in enkele minuten.
Geen creditcard of e-mail vereist.