xml2xlsx
Petr Wiedemann, 25. březen 2012
Xml2xlsx je program pro převod jednoduchých XML souborů do XLSX tabulky. Pro spuštění potřebuje nainstalovaný Microsoft .NET Framework, minimálně ve verzi 3.5. Program se spouští s parametry, zadanými na příkazové řádce. Výsledná data jsou do XLSX souboru vkládána knihovnou ExtremeML.
Program je určen pro získání dat z XML souborů, které obsahují data snadno převeditelná do tabulky. Následující ukázka XML představuje typický příklad, pro který je program napsán.
<?xml version="1.0" encoding="UTF-8" ?>
<level1>
<level2>
<name>Item 1</name>
<price>1</price>
<description>Description of item 1.</description>
</level2>
<level2>
<name>Item 2</name>
<price>2</price>
<description>Description of item 2.</description>
</level2>
<level2>
<name>Item 3</name>
<price>3</price>
<description>Description of item 3.</description>
</level2>
</level1>
XML data obsahují opakující se element level2, uvnitř kterého jsou elementy, které sami neobsahují žádné další zanořené elementy. Program xml2xlsx je určen k uložení hodnot z rodičovského elementu, v tomto případě jím je element level2. Xml2xlsx nepracuje s případnými atributy elementů, ale pouze s jejich hodnotami.
Následující parametry jsou povinné pro spuštění programu:
- -f, --file
Cesta k XML soboru. - -e, --element
Rodičovský element, ve kterém budou hledána data.
Následující parametry jsou volitelné:
- -n, --number_elements
Seznam elementů s číselnými hodnotami. V předchozím příkladu je to například element price. Jména více elementů je možné oddělit čárkou. Například: -n price1,price2. - -i, --ignore_elements
Čárkou oddělený seznam elementů, které nebudou uloženy do XLSX souboru. V předchozím příkladu by jím mohl být například element description. - -c, --sheet_count
Maximální počet řádků uložených v XLSX tabulce. Program xml2xlsx neoplývá moc velkým výkonem a pokud zdrojový XML soubor obsahuje hodně jedinečných textů, může výsledné zpracování XML souboru trvat opravdu dlouho. Pokud má XML soubor řádově stovky nebo tisíce záznamů, které je nutno do XLSX tabulky uložit, může zpracování celého souboru trvat jednotky nebo i desítky minut. Tento parametr může celkový čas, potřebný pro zpracování XML souboru zkrátit, ovšem za cenu, že výstupem z programu bude několik XLSX souborů. - -t, --add_time
Do jména XLSX souboru bude doplněn aktuální čas. Pokud by se XML soubor jmenoval sample.xml, budou data uložena do souboru sample-20120325-153011.xlsx, kde čísla ve jménu souboru odpovídají aktuálnímu času. - -v, --verbose
Při procházení XML souboru bude do konzole vypisován počet zpracovaných elementů. - -u, --url
Cesta k XML souboru, pokud je nutné jej stáhnout z internetu. Data budou uložena do souboru určeným povinným parametrem -f. - -x, --noproxy
Pro stažení souboru nepoužije výchozí proxy server, nastavený v systému. - -s, --username a -p, --password
Přihlašovací údaje, pokud je XML soubor stahován například z FTP serveru.
Soubory ke stažení
Ve staženém archívu s programem je k dispozici adresář test se vzorovým XML souborem a několika CMD soubory s ukázkou použití.