コマンドライン経由で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 日間の試用期間、機能制限なし)。本当に価値のある製品であることがおわかりいただけます。
現在サポートされているファイル形式変換の一部:
|
|
|
LLM エージェント (Claude、ChatGPT、Cursor、Cline) や検索フレームワーク (LangChain、LlamaIndex、Haystack) は生の XML をうまく読みません — ネストしたタグと属性は埋め込みモデルにとってノイズです。Total XML Converter X は XML を、構造化された frontmatter とオプションの Docling 互換サイドカー付きの GitHub-Flavored Markdown として書き出します。これにより、XML 文書はクリーンなセクション対応のテキスト表現としてベクトルストアに格納されます — 要素階層が Markdown 見出しにマッピングされ、繰り返し要素がテーブルに変換されることで、巨大な山かっこの文字列ではなくなります。
Markdown 出力を指定したときに得られるもの:
#、子要素は深さによって ## / ### / #### になります。属性は各見出しの直下にキー値リストとして表示されます
table レンダリング方式が Markdown でも動作します。同じタグと同一の子構造を持つ兄弟要素は、自動検出された型付きカラムを持つ 1 つのテーブルの行になります
-xslt stylesheet.xsl を適用して XML を整形できます。他の出力形式と同じ 1 ステップパイプラインです
source_file、format (MIME)、root_element、namespaces、element_count、深さ、検出されたスキーマ (XSD/DTD が参照されている場合)、generator、created、出所追跡用の binary_hash
.docling.json サイドカー — 自動検出されたテーブルの型付きカラム (EUR、pcs、% などの単位付き)、ソース XML に戻る要素ごとのアンカー (XPath)、ネームスペースマップ、スプリッタが読み取れる chunks_hint 配列を含む Docling スキーマの JSON
これはCoolUtils RAG Adapterです — すべての Total Converter X 製品で共有される統一された Markdown 規約。完全な仕様、サンプル .md + .docling.json、統合スニペットは Coolutils Converter X — RAG Adapter ページにあります。
(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
ActiveXまたはコマンドラインでサーバー上でXMLをCSV、JSON、PDFに変換する開発チームのために
サーバーサイドXMLからCSVおよびXMLからJSONへのツールを実現
Web開発者はTotal XML ConverterXをActiveX経由でASPまたはPHPアプリケーションに統合します。ユーザーがブラウザからXMLファイルをアップロードすると、サーバーがポップアップなしにCSV、JSON、またはPDFに静かに変換して結果を返します。統合を高速化するためのサンプルコードファイルが含まれています。
他のシステムが必要とする形式にXMLフィードを変換
エンタープライズITチームはTotal XML ConverterXを使って異なるデータ言語を持つシステムをつなぎます。あるプラットフォームからのXMLエクスポートをスプレッドシートベースのツール用CSV、WebAPI用JSON、または人による確認用PDFに変換します。すべてコマンドライン経由で自動化され、元のタイムスタンプが保持されます。
スケジュールされたパイプラインでXMLデータフィードを一括変換
データエンジニアリングチームはETLワークフローの変換ステップとしてTotal XML ConverterXを追加します。データベース、パートナーAPI、またはIoTシステムからの夜間XMLダンプをAnalyticsプラットフォーム用CSVやデータレイク用JSONに変換します。フォルダ構造は保持され、エラーは監視のために静かにログに記録されます。
サーバー上でXML文書をフォーマットまたはミニファイ
コンテンツプラットフォームとパブリッシングシステムはTotal XML ConverterXを使って生のXMLを編集者向けの人が読みやすい形式にフォーマットしたり、ストレージと転送サイズを削減するために冗長なXMLをミニファイしたりします。元の文書階層を維持しながら複雑なXML構造をバッチ処理します。
監査担当者向けにXML申請書類をPDFレポートに変換
規制対象業界はコンプライアンス申告用のXMLデータを受信または生成します。Total XML ConverterXはこれらのXMLファイルを監査担当者のレビュー用PDFレポートやコンプライアンスデータベースへのインポート用CSVに変換します。GUIの中断なしにサーバー上で無人実行され、完全なエラーログ機能を備えています。
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 を組み合わせれば、ウォッチャー駆動のバックエンドパイプラインに無理なく組み込めます。.md を指定すると、コンバーターは XML の要素階層を Markdown 見出しとして書き出します: ルートは #、子要素は深さによって ##/###/####、属性は各見出しの下にキー値リストとして表示されます。同じタグと同一の子構造を持つ繰り返し兄弟要素は、XML から XLSX への変換で使われるのと同じレンダリングを使って、型付きカラム付きの GFM テーブルとして自動検出されレンダリングされます。YAML frontmatter ブロックには source_file、root_element、namespaces、element_count、検出されたスキーマ (XSD/DTD が参照されている場合)、バイナリハッシュが格納されます。これは CoolUtils RAG Adapter の一部です — すべての Total Converter X 製品で同じ Markdown 規約が共有されます。binary_hash、chunks_hint 配列。コマンドラインで -Docling を指定して有効化します。-xslt "C:\xsl\reshape.xsl" を -cMD -Docling と一緒に渡すと、すべての入力に XSLT がオンザフライで適用され、その結果が Markdown として書き出されます。これにより、本来は 2 段階のパイプライン (XSLT プロセッサ + コンバーター) になるところを 1 つのバイナリ呼び出しに集約できます — 特定の正規化された形状で RAG インデックスに着地させる必要のある EDI 変換、請求書フォーマット、スキーママッピングのワークフローに便利です。.md ファイルは YAML frontmatter ブロックを持つプレーンな GFM なので、LangChain の UnstructuredMarkdownLoader、LlamaIndex の MarkdownReader、Haystack の MarkdownToDocument、Claude Code の MCP ファイルツールがそのまま読み込めます。要素 XPath はサイドカーに記録されているため、モデルの回答内の引用は正確なソース要素に解決できます。Claude、ChatGPT、その他のチャット UI では、Markdown をそのままコンテキストに貼り付けることができます。無料トライアルをダウンロードして、ファイルを数分で変換。
クレジットカードもメールアドレスも不要。