コマンドライン経由でXMLをJSON、XML、CSV、PDFに
Windows
2000/2003/Vista
7/8/10/11
and
2012/2016/2019/2022 Server
and
Docker/Citrix/Wine
Total XML Converter X は、XML を JSON、CSV、XLSX、PDF、HTML、SQL、DBF、Access、その他 10 以上の形式に変換するサーバーサイド SDK です — 完全な XSLT サポートを備え、サーバー上に外部 XML ライブラリを必要としません。ヘッドレスで動作し、GUI、ダイアログ、ポップアップは一切ありません。Total XML Converter X には コマンドラインバイナリと ActiveX/COM インターフェースの両方が同梱されており、ASP、PHP、.NET、Python、Ruby、Java、その他あらゆる COM 対応バックエンドに組み込めます。出力形式は 2 つのグループに分かれます。
-xslt によりすべての入力にスタイルシートをオンザフライで適用 — 2 段階パイプラインは不要
table(繰り返し要素を行に展開)、highlight(人間によるレビュー用に構文色付けされたツリー)、report(テーブル定義ファイルから表形式レポート)
-Recurse -kfs)、複数 XML を 1 つの PDF に結合するバッチ処理(-combine -sort name)、無人実行のためのキューファイル処理(-list)に対応します。サーバー向けフラグの -msuccess、-merror、-IgnoreInvalidSource により、不良ファイル 1 つでバッチ全体を中断することなく隔離フォルダーに振り分けることができます。本プログラムは XML を直接処理します — .NET XML シリアライザは不要で、Saxon や Xalan のインストールも、Windows Update 後の msxml 依存問題も発生しません。
高速な変換速度とバッチ変換により、シンプルで退屈のないプロセスを実現します。無料でお試しください(30 日間の試用期間、機能制限なし)。本当に価値のある製品であることがおわかりいただけます。
現在サポートされているファイル形式変換の一部:
|
|
|
(30日間の無料試用を含む)
(のみ $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 は私の用途にぴったりのようです。古い .xml ファイルを他の形式に変換するためだけに使っています。XSLT ファイルを処理できる点が選んだ理由です。6,000 を超える XML がありましたが、本コンバーターは 1 時間もかからずに処理してくれました。ありがとうございました!」
Jean Robitaille
Sparktown Christian School
「私たちはパートナーの XML フィード(注文、ASN、請求書)を社内の JSON スキーマに変換しています。Total XML Converter X と -xslt がそのエンジンです。パートナーごとに専用のスタイルシートがあり、コンバーターがそれをオンザフライで適用し、JSON がそのまま Kafka に流れ込みます。同じ仕事に 2GB の RAM を消費していた Java/Saxon コンテナをこれで置き換えました。Windows バイナリは約 60MB のメモリで、2 倍のスループットで動作します。」
Lukas R.
Senior Backend Developer at an EDI integration vendor
「当社の顧客は XBRL/XML のコンプライアンス申告書を提出してきますが、それを人間の監査人向けに PDF としてレンダリングする必要があります。Total XML Converter X の -method report とテーブル定義ファイルにより、独自のレンダラーを書かなくてもクリーンでページ分割された PDF 出力が得られます。-msuccess/-merror のキュー振り分けは、ウォッチャー駆動のパイプラインにまさに必要だったものです。本番運用 5 年、トラブルなしです。」
Carmen V.
DevOps Engineer at a regulatory-reporting platform
「Total XML Converter X を Royalty-Free License の下で当社のデータ移行ツールに同梱しました。1 プロジェクト買い切りの料金は、Altova MapForce が要求していた開発者ごとのサブスクリプション料金のごく一部でした。インストーラーが ActiveX を配布・登録し、当社アプリが直接呼び出すので、エンドユーザーには当社の UI しか見えません。32 ビット ActiveX の制限でパイプライン再設計に数日かかりましたが、回避策について問い合わせたところサポートはすぐに対応してくれました。」
Halil B.
Independent Software Vendor
「顧客が 20 種類の異なる ERP システムから毎晩 XML ダンプをメールで送ってきます。Total XML Converter X を使い、-detectcell -plain ですべてを XLSX にフラット化することで、アナリストは別途 ETL ツールなしで直接ピボット分析ができます。当社のハードウェアでは、典型的な 1MB 未満のファイルで 1 秒あたり約 200 XML のスループットです。CLI は実行間で決定論的で、同じ入力・同じフラグなら、ビット単位で同一のバイトが出力されます。」
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 には XMLConverterX.exe が同梱されており、スクリプト、スケジュールタスク、CI ランナー、あるいは任意のバックエンドサービスから呼び出せるコンソールバイナリです。出力はデータ系(JSON、CSV、Excel、SQL、DBF、Access)とドキュメント系(PDF、HTML、DOC、RTF、TXT、TIFF、JPEG、PNG)の両方をカバーします。以下のレシピは、SDK のお客様から最も多く寄せられるユースケースを取り上げています。
最小の呼び出し方 — ソース 1 つ、出力先 1 つ、ターゲット形式 1 つ。
XMLConverterX.exe "C:\inbox\invoice.xml" "C:\out\invoice.pdf" -cPDF
レガシー XML を最新の JSON パイプラインに流し込む最速の方法。マスクはフォルダ内のすべての XML に一致し、入力ごとに 1 つの JSON ファイルを出力します。
XMLConverterX.exe "C:\inbox\*.xml" "C:\out\" -cJSON
-detectcell はデータから数値、日付、テキストの列を推測するため、結果のワークブックで数値が合計可能なまま残ります。-plain はネストした要素を 1 つの幅広いテーブルに平坦化します。
XMLConverterX.exe "C:\reports\*.xml" "C:\out\" -cExcel -detectcell -plain
ヨーロッパのロケール、後続のパーサー、スプレッドシートのインポートはすべて異なる区切り文字を望みます。-separator はフィールドの区切り文字を、-comma は引用符を設定します(アポストロフィの場合は #39 のような文字コードを使用)。
XMLConverterX.exe "C:\inbox\*.xml" "C:\out\" -cCSV -separator ";" -comma "\""
ソース XML がターゲットのスキーマに合わない場合、まず XSLT を通します。-xslt は各入力に対してその場でスタイルシートを適用します — 2 段階のパイプラインは不要です。
XMLConverterX.exe "C:\inbox\*.xml" "C:\out\" -cPDF -xslt "C:\xsl\invoice-to-pdf.xsl"
-method フラグは XML 構造をどのように可視出力にするかを制御します。table は繰り返し要素を行に展開し、highlight はシンタックスカラーリング付きで XML ツリーをレンダリングし(人間によるレビューに適しています)、report はテーブル定義ファイルに基づく表形式のレポートを生成します。
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"
サブフォルダで整理されたデータレイクや文書アーカイブ向け。-Recurse はサブディレクトリを走査し、-kfs はすべてを 1 つのバケットにフラット化する代わりに、出力側に同じツリーを再現します。
XMLConverterX.exe "C:\datalake\*.xml" "C:\out\" -cJSON -Recurse -kfs
小さな XML のフォルダをロールアップして、レビューや監査用に 1 つのマルチページ PDF にまとめます。-sort name は順序を予測可能に保ちます。
XMLConverterX.exe "C:\reports\*.xml" "C:\out\daily-report.pdf" -cPDF -combine -sort name
標準的なバックエンド パターン:監視プロセスが inbox にファイルを置き、コンバーターがそれを処理し、成功したファイルは done、処理できなかったファイルはレビュー用に quarantine に移動します。-IgnoreInvalidSource は不正な 1 ファイルでバッチ全体を中止しないようにします。
XMLConverterX.exe "C:\inbox\*.xml" "C:\out\" -cJSON -msuccess "C:\done" -merror "C:\quarantine" -IgnoreInvalidSource -threads 0
上流がキューファイルを書き出し、コンバーターがそれを消費する場合、ファイルパスをコマンドラインに焼き込むべきではありません。-list はテキストファイルから 1 行 1 ファイルマスクを読み込みます。出力先は <DATE> および <TIME> マクロを受け付けるため、各実行が独自のバケットに収まります。
XMLConverterX.exe -list "C:\queues\nightly.txt" "C:\out\<DATE>\" -cPDF -log "C:\logs\xmlcx.log" -verbosity detail -logmode append
更新 Fri, 01 May 2026
(のみ $750.00)
-c フラグでこれらのいずれかを生成できます。new COM("XMLConverter.XMLConverterX")、.NET では new XMLConverterX()、Python では win32com.client.Dispatch、Ruby では WIN32OLE.new。あるいは、XMLConverterX.exe コマンドラインバイナリを任意のプロセス、スケジューラ、シェルスクリプトから呼び出すこともできます。ASP/PHP の Web レスポンス向けには、ConvertToStream による直接ストリーミングも利用可能です。-xslt "C:\xsl\stylesheet.xsl" を使うと、すべての入力 XML に XSLT をオンザフライで適用できます。出力は -c で選択した形式で書き出されます。これにより、本来は 2 段階のパイプライン(XSLT プロセッサ + コンバーター)になるところを、1 つのバイナリ呼び出しに集約できます。請求書フォーマット、EDI 変換、スキーママッピングのワークフローでこの方式を使用しています。-msuccess "C:\done" は変換成功ファイルを done フォルダーに移動、-merror "C:\quarantine" は失敗ファイルを隔離フォルダーに振り分け、-IgnoreInvalidSource は不良ファイル 1 つでバッチ全体が中断するのを防ぎます。-list によるキューファイル入力と -log -verbosity detail を組み合わせれば、ウォッチャー駆動のバックエンドパイプラインに無理なく組み込めます。無料トライアルをダウンロードして、ファイルを数分で変換。
クレジットカードもメールアドレスも不要。