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:
|
|
|
LLM-agents (Claude, ChatGPT, Cursor, Cline) en retrievalframeworks (LangChain, LlamaIndex, Haystack) lezen ruwe XML slecht — geneste tags en attributen zijn ruis voor embeddingmodellen. Total XML Converter X schrijft XML naar GitHub-Flavored Markdown met gestructureerde frontmatter en een optionele Docling-compatibele sidecar, zodat een XML-document in uw vector store belandt als een schone, sectiebewuste tekstweergave — met de elementhiërarchie afgebeeld op Markdown-headings en herhaalde elementen omgezet naar tabellen, niet als één grote string vol haken.
Wat u krijgt bij Markdown-uitvoer:
#, kindelementen worden ## / ### / #### per diepteniveau; attributen worden direct onder elke heading als sleutel-waardelijst weergegeven
table-renderingmethode die voor XML-naar-XLSX wordt gebruikt, slaat aan voor Markdown: gelijksoortige sibling-elementen met dezelfde tag en identieke kindvorm worden rijen in één tabel met automatisch gedetecteerde getypeerde kolommen
-xslt stylesheet.xsl toe om de XML voor Markdown-rendering te hervormen, dezelfde eentrapspipeline die voor de overige uitvoerformaten wordt gebruikt
source_file, format (MIME), root_element, namespaces, element_count, depth, gedetecteerd schema (wanneer XSD/DTD wordt gerefereerd), generator, created en een binary_hash voor herkomst
.docling.json-sidecar — Docling-schema-JSON met getypeerde kolommen uit automatisch gedetecteerde tabellen (met eenheden als EUR, pcs, %), ankers per element terug in de bron-XML (XPath), namespace-map en een chunks_hint-array die uw splitter kan lezen
Dit is de CoolUtils RAG Adapter — een uniform Markdown-contract dat door elk Total Converter X-product wordt gedeeld. Volledige specificatie, voorbeeld-.md + .docling.json en integratiesnippets staan op de pagina Coolutils Converter X — RAG Adapter.
(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
Ontwikkelteams die XML converteren naar CSV, JSON en PDF op servers via ActiveX of de opdrachtregel
Gebruik serverzijdige XML-naar-CSV- en XML-naar-JSON-tools
Webontwikkelaars integreren Total XML ConverterX via ActiveX in ASP- of PHP-toepassingen. Gebruikers uploaden XML-bestanden via een browser, de server converteert ze stilzwijgend naar CSV, JSON of PDF zonder pop-upberichten en retourneert het resultaat. Voorbeeldcodebestanden zijn meegeleverd om de integratie te versnellen.
Transformeer XML-feeds naar formaten die andere systemen vereisen
Enterprise IT-teams gebruiken Total XML ConverterX als brug tussen systemen die verschillende gegevenstalen spreken. Converteer XML-exports van één platform naar CSV voor spreadsheettools, JSON voor web-API's of PDF voor menselijke beoordeling — allemaal geautomatiseerd via de opdrachtregel met behoud van de originele tijdstempels.
Converteer XML-gegevensfeeds in batch in geplande pipelines
Data-engineeringteams voegen Total XML ConverterX toe als conversiestap in ETL-workflows. Nachtelijke XML-dumps van databases, partner-API's of IoT-systemen worden geconverteerd naar CSV voor analyseplatforms of JSON voor datalakes. De mappenstructuur wordt behouden en fouten worden stilzwijgend gelogd voor bewaking.
Formatteer of minificeer XML-documenten op de server
Contentplatforms en uitgeefssystemen gebruiken Total XML ConverterX om onbewerkte XML op te maken tot voor mensen leesbare vorm voor redacteuren, of uitgebreide XML te minificeren om opslag- en overdrachtsgrootte te verkleinen. Verwerk complexe XML-structuren in batch met behoud van de originele documenthiërarchie.
Converteer XML-indienings naar PDF-rapporten voor auditors
Gereguleerde sectoren ontvangen of genereren XML-gegevens voor complianceindienings. Total XML ConverterX converteert deze XML-bestanden naar PDF-rapporten voor auditorsbeoordeling of naar CSV voor import in compliancedatabases — onbeheerd op servers zonder GUI-onderbrekingen en met volledige foutregistratie.
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..md als uitvoerformaat en de converter schrijft de elementhiërarchie van de XML als Markdown-headings: de root is #, kindelementen zijn ##/###/#### per diepte, attributen verschijnen onder elke heading als sleutel-waardelijst. Herhaalde sibling-elementen met dezelfde tag en identieke kindvorm worden automatisch gedetecteerd en gerenderd als GFM-tabellen met getypeerde kolommen, dezelfde rendering die voor XML-naar-XLSX wordt gebruikt. Een YAML frontmatter-blok bevat source_file, root_element, namespaces, element_count, gedetecteerd schema (wanneer XSD/DTD wordt gerefereerd) en een binary hash. Dit is onderdeel van de CoolUtils RAG Adapter — hetzelfde Markdown-contract wordt gedeeld door elk Total Converter X-product.binary_hash voor herkomst en een chunks_hint-array. Inschakelen met -Docling op de command-line.-xslt "C:\xsl\reshape.xsl" samen met -cMD -Docling mee en de XSLT wordt on the fly toegepast op elke invoer, waarna het resultaat als Markdown wordt geschreven. Dit reduceert wat anders een tweetraps-pipeline zou zijn (XSLT-processor + converter) tot één enkele binary-aanroep — handig voor EDI-vertalingen, factuurformaten en schema-mappingworkflows die in een specifieke genormaliseerde vorm in een RAG-index moeten belanden..md-bestand is gewone GFM met een YAML frontmatter-blok, dus LangChain's UnstructuredMarkdownLoader, LlamaIndex's MarkdownReader, Haystack's MarkdownToDocument en Claude Code's MCP-bestandstools lezen het rechtstreeks. Omdat element-XPaths in de sidecar worden vastgelegd, kan een citatie in het antwoord van het model terugverwijzen naar het exacte bronelement. Voor Claude, ChatGPT of een chat-UI kunt u de Markdown ongewijzigd in context plakken.Download de gratis proefversie en converteer uw bestanden in enkele minuten.
Geen creditcard of e-mail vereist.