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 :
|
|
|
Les agents LLM (Claude, ChatGPT, Cursor, Cline) et les frameworks de recherche (LangChain, LlamaIndex, Haystack) ne lisent pas bien le XML brut — balises imbriquees et attributs sont du bruit pour les modeles d'embedding. Total XML Converter X ecrit le XML au format GitHub-Flavored Markdown avec un frontmatter structure et un sidecar optionnel compatible Docling, de sorte qu'un document XML atterrit dans votre vector store sous forme d'une representation textuelle propre et consciente des sections — avec la hierarchie des elements transposee en titres Markdown et les elements repetes transformes en tableaux, et non comme une chaine geante de chevrons.
Ce que vous obtenez en visant la sortie Markdown :
#, les elements enfants deviennent ## / ### / #### selon la profondeur ; les attributs sont rendus sous forme de liste cle-valeur directement sous chaque titre
table utilisee pour XML-vers-XLSX s'active pour Markdown : les elements freres ayant le meme tag et la meme forme d'enfants deviennent des lignes dans un seul tableau avec colonnes typees detectees automatiquement
-xslt stylesheet.xsl pour remodeler le XML avant le rendu Markdown, le meme pipeline en une etape utilise pour les autres formats de sortie
source_file, format (MIME), root_element, namespaces, element_count, profondeur, schema detecte (lorsqu'un XSD/DTD est reference), generator, created et un binary_hash pour la tracabilite
.docling.json optionnel — JSON au schema Docling avec colonnes typees issues des tableaux detectes automatiquement (avec unites comme EUR, pcs, %), ancres par element vers le XML source (XPath), carte des namespaces et tableau chunks_hint que votre splitter peut lire
Il s'agit du CoolUtils RAG Adapter — un contrat Markdown unifie partage par tous les produits Total Converter X. La specification complete, des exemples .md + .docling.json et des extraits d'integration sont disponibles sur la page Coolutils Converter X — RAG Adapter.
(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
Les équipes de développement qui convertissent du XML en CSV, JSON et PDF sur des serveurs via ActiveX ou ligne de commande
Alimentez des outils serveur de conversion XML vers CSV et XML vers JSON
Les développeurs web intègrent Total XML ConverterX via ActiveX dans des applications ASP ou PHP. Les utilisateurs téléchargent des fichiers XML via un navigateur, le serveur les convertit silencieusement en CSV, JSON ou PDF sans messages contextuels, et renvoie le résultat. Des fichiers de code d'exemple sont inclus pour accélérer l'intégration.
Transformez les flux XML dans les formats requis par d'autres systèmes
Les équipes informatiques d'entreprise utilisent Total XML ConverterX pour relier des systèmes qui parlent des langages de données différents. Convertissez les exports XML d'une plateforme en CSV pour les outils basés sur les tableurs, JSON pour les API web, ou PDF pour la revue humaine — le tout automatisé via la ligne de commande avec les horodatages d'origine préservés.
Convertissez en lot les flux de données XML dans des pipelines planifiés
Les équipes d'ingénierie des données ajoutent Total XML ConverterX comme étape de conversion dans les flux de travail ETL. Les exports XML nocturnes de bases de données, API partenaires ou systèmes IoT sont convertis en CSV pour les plateformes d'analyse ou JSON pour les data lakes. La structure des dossiers est préservée et les erreurs sont journalisées silencieusement pour la surveillance.
Formatez ou minifiez des documents XML sur le serveur
Les plateformes de contenu et systèmes d'édition utilisent Total XML ConverterX pour formater le XML brut en forme lisible par l'homme pour les éditeurs, ou minifier le XML verbeux pour réduire la taille de stockage et de transfert. Traitez des structures XML sophistiquées en lot tout en gardant la hiérarchie documentaire d'origine intacte.
Convertissez les soumissions XML en rapports PDF pour les auditeurs
Les secteurs réglementés reçoivent ou génèrent des données XML pour les dépôts de conformité. Total XML ConverterX convertit ces fichiers XML en rapports PDF pour la revue des auditeurs ou en CSV pour l'import dans les bases de données de conformité — fonctionnant sans surveillance sur des serveurs sans interruptions d'interface graphique et avec une journalisation complète des erreurs.
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 Thu, 11 Jun 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..md comme format de sortie et le convertisseur écrit la hiérarchie d'éléments XML sous forme de titres Markdown : la racine est #, les éléments enfants sont ##/###/#### selon la profondeur, et les attributs apparaissent sous forme de liste clé-valeur sous chaque titre. Les éléments frères répétés avec le même tag et la même forme enfant sont détectés automatiquement et rendus en tables GFM avec colonnes typées, selon le même rendu utilisé pour XML-to-XLSX. Un bloc YAML frontmatter porte source_file, root_element, namespaces, element_count, le schéma détecté (lorsque XSD/DTD est référencé) et un binary hash. Cela fait partie du CoolUtils RAG Adapter — le même contrat Markdown est partagé par tous les produits Total Converter X.binary_hash pour la traçabilité et un tableau chunks_hint. Activez-le avec -Docling en ligne de commande.-xslt "C:\xsl\reshape.xsl" avec -cMD -Docling et le XSLT est appliqué à chaque entrée à la volée, puis le résultat est écrit en Markdown. Cela réduit en un seul appel binaire ce qui serait autrement un pipeline en deux étapes (processeur XSLT + convertisseur) — utile pour les traductions EDI, les formats de factures et les workflows de mappage de schéma qui doivent atterrir dans un index RAG sous une forme normalisée précise..md est du GFM standard avec un bloc YAML frontmatter, donc UnstructuredMarkdownLoader de LangChain, MarkdownReader de LlamaIndex, MarkdownToDocument de Haystack et les outils de fichier MCP de Claude Code le lisent directement. Comme les XPath des éléments sont enregistrés dans le sidecar, une citation dans la réponse du modèle peut pointer vers l'élément source exact. Pour Claude, ChatGPT ou n'importe quelle UI de chat, vous pouvez coller le Markdown dans le contexte tel quel.Téléchargez la version d'essai gratuite et convertissez vos fichiers en quelques minutes.
Aucune carte de crédit ou email requis.