XML do JSON, XML, CSV, PDF za pomocą wiersza poleceń
Windows
2000/2003/Vista
7/8/10/11
and
2012/2016/2019/2022 Server
and
Docker/Citrix/Wine
Total XML Converter X to serwerowy SDK, który konwertuje XML do JSON, CSV, XLSX, PDF, HTML, SQL, DBF, Access oraz ponad 10 innych formatów — z pełną obsługą XSLT i bez konieczności instalowania zewnętrznych bibliotek XML na serwerze. Działa bezgłowo: bez GUI, bez okien dialogowych, bez wyskakujących komunikatów. Total XML Converter X jest dostarczany razem z binarnym plikiem wiersza poleceń oraz interfejsem ActiveX/COM, dzięki czemu można go bez problemu osadzić w ASP, PHP, .NET, Pythonie, Ruby, Javie i każdym innym backendzie obsługującym COM. Formaty wyjściowe dzielą się na dwie grupy:
-xslt — bez potrzeby budowania dwuetapowego potoku
table (rozwija powtarzające się elementy do wierszy), highlight (drzewo z kolorowaniem składni do przeglądu przez człowieka), report (raport tabelaryczny z pliku definicji tabel)
-Recurse -kfs), wsadowe łączenie wielu plików XML w jeden PDF (-combine -sort name) oraz przetwarzanie z plików kolejki (-list) do uruchomień bez nadzoru. Przyjazne dla serwera flagi -msuccess, -merror i -IgnoreInvalidSource pozwalają skierować pojedynczy błędny plik do folderu kwarantanny bez przerywania całej partii.Program przetwarza XML bezpośrednio — bez potrzeby serializatora XML z .NET, bez instalacji Saxon czy Xalan, bez niespodzianek związanych z zależnością od msxml po aktualizacji systemu Windows.
Wysoka prędkość konwersji i przetwarzanie wsadowe sprawiają, że proces jest prosty i niemęczący. Wypróbuj za darmo (30-dniowy okres próbny, bez ograniczeń) i przekonaj się, że naprawdę warto.
Niektóre z aktualnie obsługiwanych konwersji formatów plików:
|
|
|
(zawiera 30-dniowy DARMOWY okres próbny)
(tylko $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 wydaje się idealny do moich zastosowań, choć używamy go tylko do konwersji starych plików .xml na inne formaty. Wybraliśmy program ze względu na możliwość przetwarzania plików XSLT. Mieliśmy ponad 6000 plików XML, a konwerter wykonał zadanie w mniej niż godzinę. Dziękujemy!"
Jean Robitaille
Sparktown Christian School
"Tłumaczymy strumienie XML od partnerów (zamówienia, ASN, faktury) na nasz wewnętrzny schemat JSON. Total XML Converter X z flagą -xslt jest tu silnikiem: każdy partner ma własny arkusz stylów, konwerter stosuje go w locie, a JSON trafia bezpośrednio do Kafki. Zastąpiliśmy kontener Java/Saxon, który zjadał 2 GB RAM-u przy tej samej pracy. Binarka Windows zużywa około 60 MB i działa z dwukrotnie większą przepustowością."
Lukas R.
Senior Backend Developer at an EDI integration vendor
"Nasi klienci przesyłają zgłoszenia zgodności XBRL/XML, które musimy renderować jako PDF dla audytorów. Total XML Converter X z opcjami -method report i plikiem definicji tabel produkuje czyste, podzielone na strony pliki PDF bez konieczności pisania własnego renderera. Routing kolejki -msuccess/-merror to dokładnie to, czego potrzebowaliśmy do potoku sterowanego obserwatorem. Pięć lat na produkcji, żadnych niespodzianek."
Carmen V.
DevOps Engineer at a regulatory-reporting platform
"Wbudowaliśmy Total XML Converter X w nasze narzędzie do migracji danych w ramach licencji Royalty-Free. Jednorazowa opłata za projekt była ułamkiem tego, co Altova MapForce żądał za subskrypcję per developer. Nasz instalator dostarcza i rejestruje ActiveX, nasza aplikacja wywołuje go bezpośrednio, a użytkownicy końcowi widzą tylko nasz interfejs. 32-bitowe ograniczenie ActiveX kosztowało nas kilka dni przebudowy potoku, ale wsparcie odpowiadało szybko, gdy pytaliśmy o obejścia."
Halil B.
Independent Software Vendor
"Klienci przesyłają nam mailem nocne zrzuty XML z dwudziestu różnych systemów ERP. Używamy Total XML Converter X, aby spłaszczyć wszystko do XLSX z opcjami -detectcell -plain, dzięki czemu analitycy mogą pivotować bezpośrednio bez osobnego narzędzia ETL. Przepustowość to około 200 plików XML na sekundę na naszym sprzęcie dla typowych plików poniżej 1 MB. CLI jest deterministyczne między uruchomieniami: te same dane wejściowe, te same flagi, identyczne co do bajta wyniki."
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 jest dostarczany z plikiem XMLConverterX.exe, binarnym narzędziem konsolowym, które możesz uruchamiać ze skryptów, zaplanowanych zadań, runnerów CI lub dowolnej usługi backendowej. Wyjście obejmuje stronę danych (JSON, CSV, Excel, SQL, DBF, Access) i stronę dokumentów (PDF, HTML, DOC, RTF, TXT, TIFF, JPEG, PNG). Poniższe przepisy obejmują przypadki, o które najczęściej pytają klienci SDK.
Najprostsze możliwe wywołanie — jedno źródło, jedno wyjście, jeden format docelowy.
XMLConverterX.exe "C:\inbox\invoice.xml" "C:\out\invoice.pdf" -cPDF
Najszybszy sposób, aby zasilić starszy XML do nowoczesnego pipeline'u JSON. Maska dopasowuje każdy XML w folderze; wyjście otrzymuje jeden plik JSON na wejście.
XMLConverterX.exe "C:\inbox\*.xml" "C:\out\" -cJSON
-detectcell wnioskuje kolumny numeryczne, datowe i tekstowe z danych, więc liczby pozostają sumowalne w wynikowym skoroszycie. -plain spłaszcza zagnieżdżone elementy w jedną szeroką tabelę.
XMLConverterX.exe "C:\reports\*.xml" "C:\out\" -cExcel -detectcell -plain
Lokale europejskie, parsery downstream i importy arkuszy kalkulacyjnych chcą różnych separatorów. -separator ustawia separator pól; -comma ustawia znak cudzysłowu (użyj kodów znaków jak #39 dla apostrofu).
XMLConverterX.exe "C:\inbox\*.xml" "C:\out\" -cCSV -separator ";" -comma "\""
Gdy źródłowy XML nie pasuje do schematu docelowego, najpierw przepuść go przez XSLT. -xslt stosuje arkusz stylów do każdego wejścia w locie — nie potrzeba dwuetapowego pipeline'u.
XMLConverterX.exe "C:\inbox\*.xml" "C:\out\" -cPDF -xslt "C:\xsl\invoice-to-pdf.xsl"
Flaga -method kontroluje, jak struktura XML staje się widocznym wyjściem. table rozwija powtarzające się elementy w wiersze; highlight renderuje drzewo XML z kolorowaniem składni (dobre do ludzkiego przeglądu); report generuje raport tabelaryczny oparty na pliku definicji tabel.
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"
Dla data lake'ów i archiwów dokumentów zorganizowanych w podfolderach. -Recurse przechodzi przez podkatalogi; -kfs odtwarza to samo drzewo po stronie wyjścia zamiast spłaszczać wszystko do jednego kontenera.
XMLConverterX.exe "C:\datalake\*.xml" "C:\out\" -cJSON -Recurse -kfs
Zwiń folder małych XML-i w pojedynczy wielostronicowy PDF do przeglądu lub audytu. -sort name utrzymuje przewidywalną kolejność.
XMLConverterX.exe "C:\reports\*.xml" "C:\out\daily-report.pdf" -cPDF -combine -sort name
Standardowy wzorzec backendu: obserwator wrzuca pliki do inbox, konwerter go opróżnia, przetworzone pliki trafiają do done, pliki, których nie udało się obsłużyć, lądują w quarantine do przeglądu. -IgnoreInvalidSource sprawia, że pojedynczy zły plik nie przerywa całego wsadu.
XMLConverterX.exe "C:\inbox\*.xml" "C:\out\" -cJSON -msuccess "C:\done" -merror "C:\quarantine" -IgnoreInvalidSource -threads 0
Gdy upstream zapisuje plik kolejki, a konwerter go konsumuje, ścieżki plików nie powinny być kodowane w wierszu poleceń. -list czyta maski plików (po jednej na linię) z pliku tekstowego. Miejsce docelowe akceptuje makra <DATE> i <TIME>, więc każde uruchomienie otrzymuje własny kontener.
XMLConverterX.exe -list "C:\queues\nightly.txt" "C:\out\<DATE>\" -cPDF -log "C:\logs\xmlcx.log" -verbosity detail -logmode append
Zaktualizowano Fri, 01 May 2026
(tylko $750.00)
-c.new COM("XMLConverter.XMLConverterX") w PHP, new XMLConverterX() w .NET, win32com.client.Dispatch w Pythonie, WIN32OLE.new w Ruby. Alternatywnie binarny plik wiersza poleceń XMLConverterX.exe może być wywoływany z dowolnego procesu, harmonogramu lub skryptu powłoki. Dostępne jest również bezpośrednie strumieniowanie poprzez ConvertToStream dla odpowiedzi webowych ASP/PHP.-xslt "C:\xsl\stylesheet.xsl", aby zastosować XSLT do każdego pliku wejściowego XML w locie. Wynik jest następnie zapisywany w formacie wybranym przez -c. Zmienia to dwuetapowy potok (procesor XSLT + konwerter) w pojedyncze wywołanie binarne. Używamy tego do formatów faktur, tłumaczeń EDI i przepływów mapowania schematów.-msuccess "C:\done" przenosi pomyślnie skonwertowane pliki do folderu wykonanych, -merror "C:\quarantine" kieruje błędy do folderu kwarantanny, a -IgnoreInvalidSource zapobiega przerwaniu całej partii przez pojedynczy uszkodzony plik. W połączeniu z wejściem z pliku kolejki -list oraz -log -verbosity detail, binarka czysto wpisuje się w sterowany obserwatorem potok backendowy.Pobierz wersję próbną i konwertuj pliki w kilka minut.
Nie jest wymagana karta kredytowa ani e-mail.