XML zu JSON, XML, CSV, PDF über die Befehlszeile
Windows
2000/2003/Vista
7/8/10/11
and
2012/2016/2019/2022 Server
and
Docker/Citrix/Wine
Total XML Converter X ist ein serverseitiges SDK, das XML in JSON, CSV, XLSX, PDF, HTML, SQL, DBF, Access und mehr als 10 weitere Formate konvertiert — mit vollständiger XSLT-Unterstützung und ohne externe XML-Bibliotheken auf dem Server. Es läuft im Headless-Modus: keine GUI, keine Dialoge, keine Popups. Total XML Converter X wird sowohl mit einer Kommandozeilen-Binärdatei als auch mit einer ActiveX/COM-Schnittstelle ausgeliefert und lässt sich somit in ASP, PHP, .NET, Python, Ruby, Java und jedes andere COM-fähige Backend einbinden. Die Ausgabeformate teilen sich in zwei Gruppen auf:
-xslt auf jede Eingabe an — keine zweistufige Pipeline nötig
table (wiederholte Elemente in Zeilen ausklappen), highlight (syntaxgefärbter Baum zur menschlichen Prüfung), report (tabellarischer Bericht aus einer Tabellendefinitionsdatei)
-Recurse -kfs), das Stapelzusammenführen mehrerer XMLs in einer PDF (-combine -sort name) sowie die Verarbeitung von Warteschlangendateien (-list) für unbeaufsichtigte Läufe. Serverfreundliche Flags -msuccess, -merror und -IgnoreInvalidSource erlauben es, eine einzelne defekte Datei in einen Quarantäneordner umzuleiten, ohne den ganzen Stapel abzubrechen.Das Programm verarbeitet XML direkt — kein .NET-XML-Serialisierer erforderlich, keine Saxon- oder Xalan-Installation, keine bösen msxml-Überraschungen nach einem Windows-Update.
Hohe Konvertierungsgeschwindigkeit und Stapelverarbeitung sorgen für einen einfachen und ermüdungsfreien Ablauf. Testen Sie es kostenlos (30 Tage Testzeitraum, ohne Einschränkungen) und überzeugen Sie sich, dass es sein Geld wert ist.
Einige der derzeit unterstützten Dateiformat-Konvertierungen:
|
|
|
(enthält 30 Tage KOSTENLOSE Testversion)
(nur $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 scheint perfekt für meine Zwecke zu sein, auch wenn wir ihn nur einsetzen, um alte .xml-Dateien in andere Formate zu konvertieren. Wir haben uns wegen der Fähigkeit, XSLT-Dateien zu verarbeiten, für das Programm entschieden. Wir hatten über 6.000 XMLs, und der Konverter hat die Arbeit in weniger als einer Stunde erledigt. Vielen Dank!"
Jean Robitaille
Sparktown Christian School
"Wir übersetzen XML-Feeds unserer Partner (Aufträge, ASN, Rechnungen) in unser internes JSON-Schema. Total XML Converter X mit -xslt ist die Engine: jeder Partner hat sein eigenes Stylesheet, der Konverter wendet es on the fly an, und die JSON landen direkt in Kafka. Wir haben einen Java-/Saxon-Container ersetzt, der für dieselbe Aufgabe 2 GB RAM verschlungen hat. Die Windows-Binärdatei verbraucht rund 60 MB und läuft mit doppeltem Durchsatz."
Lukas R.
Senior Backend Developer at an EDI integration vendor
"Unsere Kunden reichen XBRL-/XML-Compliance-Meldungen ein, die wir für menschliche Prüfer als PDF rendern müssen. Total XML Converter X mit -method report und einer Tabellendefinitionsdatei erzeugt saubere, paginierte PDF-Ausgaben, ohne dass wir einen eigenen Renderer schreiben müssen. Das Queue-Routing über -msuccess/-merror ist genau das, was wir für die watcher-getriebene Pipeline brauchten. Fünf Jahre im Produktivbetrieb, keine Überraschungen."
Carmen V.
DevOps Engineer at a regulatory-reporting platform
"Wir haben Total XML Converter X im Rahmen der Royalty-Free-Lizenz in unser Datenmigrationstool eingebettet. Die einmalige Gebühr pro Projekt war ein Bruchteil dessen, was Altova MapForce als Abonnement pro Entwickler verlangt hat. Unser Installer liefert das ActiveX mit aus und registriert es, unsere App ruft es direkt auf, und Endanwender sehen nur unsere UI. Die 32-Bit-Beschränkung des ActiveX hat uns ein paar Tage Pipeline-Umbau gekostet, aber der Support hat schnell reagiert, als wir nach Workarounds gefragt haben."
Halil B.
Independent Software Vendor
"Kunden mailen uns nächtlich XML-Dumps aus zwanzig verschiedenen ERP-Systemen. Wir verwenden Total XML Converter X, um alles mit -detectcell -plain in XLSX zu plätten, sodass die Analysten direkt pivotieren können, ohne ein separates ETL-Tool. Der Durchsatz liegt auf unserer Hardware bei rund 200 XMLs pro Sekunde für typische Dateien unter 1 MB. Die CLI ist über alle Läufe hinweg deterministisch: gleiche Eingabe, gleiche Flags, bitidentische 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 wird mit XMLConverterX.exe ausgeliefert, einer Konsolenanwendung, die Sie aus Skripten, geplanten Aufgaben, CI-Runnern oder jedem Backend-Dienst heraus ansteuern können. Die Ausgabe deckt die Datenseite (JSON, CSV, Excel, SQL, DBF, Access) und die Dokumentenseite (PDF, HTML, DOC, RTF, TXT, TIFF, JPEG, PNG) ab. Die folgenden Rezepte decken die Fälle ab, nach denen SDK-Kunden am häufigsten fragen.
Der kleinstmögliche Aufruf — eine Quelle, eine Ausgabe, ein Zielformat.
XMLConverterX.exe "C:\inbox\invoice.xml" "C:\out\invoice.pdf" -cPDF
Der schnellste Weg, Legacy-XML in eine moderne JSON-Pipeline einzuspeisen. Die Maske trifft jede XML im Ordner; die Ausgabe ergibt eine JSON-Datei pro Eingabe.
XMLConverterX.exe "C:\inbox\*.xml" "C:\out\" -cJSON
-detectcell erschließt numerische, Datum- und Textspalten aus den Daten, sodass Zahlen in der resultierenden Arbeitsmappe summierbar bleiben. -plain flacht verschachtelte Elemente in eine breite Tabelle ab.
XMLConverterX.exe "C:\reports\*.xml" "C:\out\" -cExcel -detectcell -plain
Europäische Locales, nachgelagerte Parser und Tabellenkalkulations-Importe wollen alle unterschiedliche Trenner. -separator setzt das Feldtrennzeichen; -comma setzt das Anführungszeichen (verwenden Sie Zeichencodes wie #39 für ein Apostroph).
XMLConverterX.exe "C:\inbox\*.xml" "C:\out\" -cCSV -separator ";" -comma "\""
Wenn die Quell-XML nicht zum Zielschema passt, schicken Sie sie zuerst durch ein XSLT. -xslt wendet das Stylesheet im Vorbeigehen auf jede Eingabe an — keine zweistufige Pipeline nötig.
XMLConverterX.exe "C:\inbox\*.xml" "C:\out\" -cPDF -xslt "C:\xsl\invoice-to-pdf.xsl"
Das Flag -method steuert, wie die XML-Struktur in sichtbarer Ausgabe wird. table expandiert wiederholte Elemente in Zeilen; highlight rendert den XML-Baum mit Syntax-Färbung (gut für menschliche Prüfung); report erzeugt einen tabellarischen Bericht basierend auf einer Tabellen-Definitionsdatei.
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"
Für Data Lakes und Dokumentenarchive, die in Unterordnern organisiert sind. -Recurse durchläuft Unterverzeichnisse; -kfs erzeugt denselben Baum auf der Ausgabeseite, statt alles in einen einzigen Topf zu kippen.
XMLConverterX.exe "C:\datalake\*.xml" "C:\out\" -cJSON -Recurse -kfs
Rollen Sie einen Ordner kleiner XMLs zu einem mehrseitigen PDF zur Prüfung oder zum Audit zusammen. -sort name hält die Reihenfolge vorhersagbar.
XMLConverterX.exe "C:\reports\*.xml" "C:\out\daily-report.pdf" -cPDF -combine -sort name
Das Standard-Backend-Muster: ein Watcher legt Dateien in inbox ab, der Konverter leert ihn, verarbeitete Dateien landen in done, nicht verarbeitbare Dateien wandern zur Prüfung in quarantine. -IgnoreInvalidSource verhindert, dass eine einzelne fehlerhafte Datei den ganzen Batch abbricht.
XMLConverterX.exe "C:\inbox\*.xml" "C:\out\" -cJSON -msuccess "C:\done" -merror "C:\quarantine" -IgnoreInvalidSource -threads 0
Wenn vorgelagerte Komponenten eine Queue-Datei schreiben und der Konverter sie konsumiert, sollten die Dateipfade nicht in die Befehlszeile codiert sein. -list liest Dateimasken (eine pro Zeile) aus einer Textdatei. Das Ziel akzeptiert <DATE>- und <TIME>-Makros, sodass jeder Lauf seinen eigenen Topf bekommt.
XMLConverterX.exe -list "C:\queues\nightly.txt" "C:\out\<DATE>\" -cPDF -log "C:\logs\xmlcx.log" -verbosity detail -logmode append
Aktualisiert Fri, 01 May 2026
(nur $750.00)
-c jedes dieser Formate erzeugen.new COM("XMLConverter.XMLConverterX") in PHP, new XMLConverterX() in .NET, win32com.client.Dispatch in Python, WIN32OLE.new in Ruby. Alternativ lässt sich die Kommandozeilen-Binärdatei XMLConverterX.exe aus jedem Prozess, Scheduler oder Shell-Skript heraus aufrufen. Direktes Streaming über ConvertToStream ist ebenfalls möglich, etwa für ASP-/PHP-Webantworten.-xslt "C:\xsl\stylesheet.xsl" wenden Sie ein XSLT on the fly auf jede Eingabe-XML an. Die Ausgabe wird anschließend in dem mit -c gewählten Format geschrieben. Damit wird eine sonst zweistufige Pipeline (XSLT-Prozessor + Konverter) zu einem einzigen Binäraufruf reduziert. Wir nutzen das für Rechnungsformate, EDI-Übersetzungen und Schema-Mapping-Workflows.-msuccess "C:\done" verschiebt erfolgreich konvertierte Dateien in einen Erledigt-Ordner, -merror "C:\quarantine" leitet fehlgeschlagene Dateien in einen Quarantäneordner um und -IgnoreInvalidSource verhindert, dass eine einzige defekte Datei den gesamten Stapel abbricht. Zusammen mit der Warteschlangendatei-Eingabe -list und -log -verbosity detail fügt sich die Binärdatei sauber in eine watcher-getriebene Backend-Pipeline ein.Laden Sie die Testversion herunter und konvertieren Sie Ihre Dateien in wenigen Minuten.
Keine Kreditkarte oder Email erforderlich.