🐮 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 #apps:blending-bull :wink:

2 Likes
Funkce | Audit XML | Agentury | Nápověda | Blog | Forum | Kontakt