🐮 Jak zarovnat XML feed do "tabulky"

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.

:question: 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.

:bulb: 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í :smiley:
  • 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í.

:open_book: 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.

:hammer_and_wrench: 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 Blending Bull :wink:

2 Likes