Convertissez XML en JSON, XML, CSV, PDF via la ligne de commande
Windows
2000/2003/Vista
7/8/10/11
and
2012/2016/2019/2022 Server
and
Docker/Citrix/Wine
Total XML Converter X est un SDK côté serveur qui convertit le XML en JSON, CSV, XLSX, PDF, HTML, SQL, DBF, Access et plus de 10 autres formats — avec prise en charge complète de XSLT et sans aucune bibliothèque XML externe sur le serveur. Il fonctionne en mode headless : pas d'interface graphique, pas de boîtes de dialogue, pas de fenêtres contextuelles. Total XML Converter X est livré avec un binaire en ligne de commande ainsi qu'une interface ActiveX/COM, ce qui lui permet de s'intégrer à ASP, PHP, .NET, Python, Ruby, Java et tout autre backend compatible COM. Les formats de sortie se répartissent en deux groupes :
-xslt — aucun pipeline en deux étapes nécessaire
table (transforme les éléments répétés en lignes), highlight (arborescence colorée pour relecture humaine), report (rapport tabulaire à partir d'un fichier de définition de tables)
-Recurse -kfs), la combinaison par lots de plusieurs XML en un seul PDF (-combine -sort name) et le traitement par fichier de file d'attente (-list) pour des exécutions sans surveillance. Les indicateurs adaptés au serveur -msuccess, -merror et -IgnoreInvalidSource permettent d'envoyer un fichier défectueux dans un dossier de quarantaine sans interrompre le lot.Le programme traite le XML directement — pas besoin du sérialiseur XML .NET, ni d'une installation de Saxon ou Xalan, ni de mauvaises surprises liées à msxml après une mise à jour de Windows.
La grande vitesse de conversion et le traitement par lots rendent le processus simple et exempt d'ennui. Essayez-le gratuitement (période d'essai de 30 jours, sans limitations) et vous découvrirez qu'il vaut vraiment son prix.
Quelques-unes des conversions de formats actuellement prises en charge :
|
|
|
(inclut un essai GRATUIT de 30 jours)
(seulement $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 semble parfait pour notre usage, même si nous l'utilisons uniquement pour convertir d'anciens fichiers .xml vers d'autres formats. Nous avons choisi le programme pour sa capacité à traiter les fichiers XSLT. Nous avions plus de 6 000 XML et le convertisseur a fait le travail en moins d'une heure. Merci !"
Jean Robitaille
Sparktown Christian School
"Nous traduisons les flux XML de nos partenaires (commandes, ASN, factures) vers notre schéma JSON interne. Total XML Converter X avec -xslt en est le moteur : chaque partenaire dispose de sa propre feuille de style, le convertisseur l'applique à la volée et le JSON tombe directement dans Kafka. Nous avons remplacé un conteneur Java/Saxon qui consommait 2 Go de RAM pour la même tâche. Le binaire Windows utilise environ 60 Mo et tourne deux fois plus vite."
Lukas R.
Senior Backend Developer at an EDI integration vendor
"Nos clients soumettent des déclarations de conformité XBRL/XML que nous devons restituer au format PDF pour les auditeurs humains. Total XML Converter X avec -method report et un fichier de définition de tables produit une sortie PDF propre et paginée sans que nous ayons à écrire notre propre moteur de rendu. Le routage de file d'attente -msuccess/-merror est exactement ce dont nous avions besoin pour un pipeline piloté par watcher. Cinq ans en production, sans surprise."
Carmen V.
DevOps Engineer at a regulatory-reporting platform
"Nous avons intégré Total XML Converter X dans notre outil de migration de données sous la licence Royalty-Free. Le forfait unique par projet ne représentait qu'une fraction de ce que demandait Altova MapForce avec son abonnement par développeur. Notre installeur livre et enregistre l'ActiveX, notre application l'appelle directement, et les utilisateurs finaux ne voient que notre interface. La limitation 32 bits de l'ActiveX nous a coûté quelques jours de retravail du pipeline, mais le support a été réactif lorsque nous avons demandé des contournements."
Halil B.
Independent Software Vendor
"Nos clients nous envoient chaque nuit par e-mail des dumps XML provenant d'une vingtaine de systèmes ERP différents. Nous utilisons Total XML Converter X pour tout aplatir en XLSX avec -detectcell -plain, ce qui permet aux analystes de pivoter directement sans outil ETL séparé. Le débit est d'environ 200 XML par seconde sur notre matériel pour des fichiers typiques de moins d'un Mo. La CLI est déterministe d'une exécution à l'autre : mêmes entrées, mêmes options, octets identiques au bit près."
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 est livré avec XMLConverterX.exe, un binaire console que vous pouvez piloter depuis des scripts, des tâches planifiées, des runners CI ou tout service backend. La sortie couvre le côté données (JSON, CSV, Excel, SQL, DBF, Access) et le côté document (PDF, HTML, DOC, RTF, TXT, TIFF, JPEG, PNG). Les recettes ci-dessous couvrent les cas dont nos clients SDK nous parlent le plus souvent.
L'appel le plus simple possible — une source, une sortie, un format cible.
XMLConverterX.exe "C:\inbox\invoice.xml" "C:\out\invoice.pdf" -cPDF
Le moyen le plus rapide d'alimenter du XML hérité dans un pipeline JSON moderne. Le masque correspond à chaque XML dans le dossier ; la sortie obtient un fichier JSON par entrée.
XMLConverterX.exe "C:\inbox\*.xml" "C:\out\" -cJSON
-detectcell infère les colonnes numériques, date et texte à partir des données pour que les chiffres restent sommables dans le classeur résultant. -plain aplatit les éléments imbriqués en une seule table large.
XMLConverterX.exe "C:\reports\*.xml" "C:\out\" -cExcel -detectcell -plain
Les locales européennes, analyseurs en aval et imports de feuilles de calcul veulent tous des séparateurs différents. -separator définit le séparateur de champ ; -comma définit le caractère de citation (utilisez les codes char comme #39 pour une apostrophe).
XMLConverterX.exe "C:\inbox\*.xml" "C:\out\" -cCSV -separator ";" -comma "\""
Lorsque le XML source ne correspond pas au schéma cible, faites-le passer par un XSLT d'abord. -xslt applique la feuille de style à chaque entrée à la volée — pas de pipeline en deux étapes nécessaire.
XMLConverterX.exe "C:\inbox\*.xml" "C:\out\" -cPDF -xslt "C:\xsl\invoice-to-pdf.xsl"
L'option -method contrôle comment la structure XML devient une sortie visible. table développe les éléments répétés en lignes ; highlight rend l'arbre XML avec coloration syntaxique (bon pour la revue humaine) ; report génère un rapport tabulaire basé sur un fichier de définition de tables.
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"
Pour les data lakes et archives de documents organisés en sous-dossiers. -Recurse parcourt les sous-répertoires ; -kfs recrée la même arborescence côté sortie au lieu d'aplatir tout dans un seul seau.
XMLConverterX.exe "C:\datalake\*.xml" "C:\out\" -cJSON -Recurse -kfs
Roulez un dossier de petits XML en un seul PDF multi-pages pour révision ou audit. -sort name garde l'ordre prévisible.
XMLConverterX.exe "C:\reports\*.xml" "C:\out\daily-report.pdf" -cPDF -combine -sort name
Le motif backend standard : un veilleur dépose des fichiers dans inbox, le convertisseur le vide, les fichiers traités atterrissent dans done, les fichiers qu'il n'a pas pu gérer atterrissent dans quarantine pour examen. -IgnoreInvalidSource empêche un seul fichier défectueux d'interrompre tout le lot.
XMLConverterX.exe "C:\inbox\*.xml" "C:\out\" -cJSON -msuccess "C:\done" -merror "C:\quarantine" -IgnoreInvalidSource -threads 0
Lorsque l'amont écrit un fichier de file d'attente et que le convertisseur le consomme, les chemins de fichiers ne devraient pas être encodés dans la ligne de commande. -list lit les masques de fichiers (un par ligne) depuis un fichier texte. La destination accepte les macros <DATE> et <TIME> pour que chaque exécution ait son propre seau.
XMLConverterX.exe -list "C:\queues\nightly.txt" "C:\out\<DATE>\" -cPDF -log "C:\logs\xmlcx.log" -verbosity detail -logmode append
Mis à jour Fri, 01 May 2026
(seulement $750.00)
-c.new COM("XMLConverter.XMLConverterX") en PHP, new XMLConverterX() en .NET, win32com.client.Dispatch en Python, WIN32OLE.new en Ruby. Le binaire en ligne de commande XMLConverterX.exe peut également être appelé depuis n'importe quel processus, planificateur ou script shell. Le streaming direct via ConvertToStream est également disponible pour les réponses web ASP/PHP.-xslt "C:\xsl\stylesheet.xsl" pour appliquer un XSLT à chaque XML d'entrée à la volée. La sortie est ensuite écrite dans le format choisi via -c. Cela réduit en un seul appel binaire ce qui serait autrement un pipeline en deux étapes (processeur XSLT + convertisseur). Nous l'utilisons pour des formats de factures, des traductions EDI et des workflows de mappage de schéma.-msuccess "C:\done" déplace les fichiers convertis avec succès vers un dossier des terminés, -merror "C:\quarantine" achemine les échecs vers un dossier de quarantaine, et -IgnoreInvalidSource empêche un seul fichier défectueux d'interrompre tout le lot. Combiné à l'entrée par fichier de file d'attente -list et à -log -verbosity detail, le binaire s'intègre proprement à un pipeline backend piloté par un watcher.Téléchargez la version d'essai gratuite et convertissez vos fichiers en quelques minutes.
Aucune carte de crédit ou email requis.