Nejnovější verze aplikace Blending Bull přinesla nové typy pravidel. Mezi nimi pravidlo Zarovnat XML do tabulky. To mění pohled na zpracování datových feedů v aplikaci Blending Bull.
Co udělá pravidlo Zarovnat XML do tabulky
Pravidlo odstraní řádkové zlomy, některé bílé znaky, přidá nové řádkové zlomy. A to tak, aby jedna položka zboží (či jaká jiná data zpracováváte) byla na jednom řádku. Viz. jednoduchý příklad.
Datový zdroj:
<SHOPITEM>
<ITEM_ID>1</ITEM_ID>
<PRODUCTNAME>Hrníček bíly Karel</PRODUCTNAME>
<PRICE_VAT>123</PRICE_VAT>
</SHOPITEM>
<SHOPITEM>
<ITEM_ID>2</ITEM_ID>
<PRODUCTNAME>Hrníček bíly Maruška</PRODUCTNAME>
<PRICE_VAT>456</PRICE_VAT>
</SHOPITEM>
Použijeme pravidlo Zarovnat XML do tabulky, zadáme element SHOPITEM
a výstupní soubor bude vypadat takto:
<SHOPITEM><ITEM_ID>1</ITEM_ID><PRODUCTNAME>Hrníček bíly Karel</PRODUCTNAME><PRICE_VAT>123</PRICE_VAT></SHOPITEM>
<SHOPITEM><ITEM_ID>2</ITEM_ID><PRODUCTNAME>Hrníček bíly Maruška</PRODUCTNAME><PRICE_VAT>456</PRICE_VAT></SHOPITEM>
Tedy každá SHOPITEM bude na vlastním řádku.
Poznámky k pravidlu
- Pravidlo pouze odstraní bílé znaky mezi XML elementy a řádkové zlomy upraví tak, aby byly na místě
</názevelementuzadanýuživatelem>ZDE
. Neřeší obsah na řádcích. Negarantuje tedy např. pořadí XML elementů na jednotlivých řádcích. To je stejné jako v datových zdrojích na vstupu. Je možné, že datový zdroj obsahuje elementy u všech SHOPITEMS ve stejném pořadí. Ale 100% na to spoléhat nelze. Pokud bychom chtěli např. konvertovat XML do CSV, bylo by vhodné pořadí elementů zkontrolovat, případně dalšími pravidly stanovit. - Délka řádku, který dokáže Blending Bull zpracovat pravidly, je omezena. V praxi jsem zatím na tento limit nenarazil, nicméně stát se to může.
-
Název pravidla “Zarovnat XML do tabulky” jsem odvodil od podobnosti takto zpracovaného XML s CSV, resp. s tabulkou např. v Excelu. Více v tom není
- Pravidlo je určeno primárně ke zpracování datových zdrojů ve formátu XML. V aplikaci jej uvidíte vždy a můžete jej také vždy využít. Byť např. v CSV asi smysl dávat nemusí.
Proč pravidlo vzniklo
Cílem bylo pracovat s regulárními výrazy uvnitř SHOPITEMs. Například doplňovat nové elementy, rozdělovat elementy s parametry na více elementů, mazat části dat… A při tom zlobily bílé znaky a řádkové zlomy. Inspirace řešení přišla z CSV, kde jsou data pro jednu SHOPITEM na jednom řádku. V XML mít jednu SHOPITEM na jednom řádku nevadí. Jen to není časté. Převod dat do tohoto uspořádání řadu problémů při zpracování souborů na úrovni znaků v Blending Bullovi odboural.
Využití pravidla
Ve zvláštních příspěvcích Vám ukáži, jak např. stanovit pořadí elementů v jedné SHOPITEM. A příkladů najdeme více. V takových situacích bude fajn, když naše následující pravidla budou moci předpokládat určitý formát znaků na vstupu.
Tipuji, že Vás už nyní napadají využití tohoto pravidla. Pro další inspiraci sledujte vlákno #apps:blending-bull