Převod CSV na vlastní HTML/XML on-line

Potřebovali jste někdy udělat z CSV tabulky (třeba exportované z Excelu) tabulku v HTML nebo dokonce vytvořit HTML se zcela vlastní strukturou (např. odrážkový seznam atp.)?

Ano? Pak se vám bude hodit jednoduché on-line řešení pro převod CSV na HTML (či XML, příp. transformaci CSV). Vše řeší jeden regulární výraz a pravidlo pro nahrazení zachycených částí textů (substringů).

Pokud trochu regulárním výrazům rozumíte, koukněte se přímo na ukázku.

Příklad

V našem případě je na vstupu CSV v US formátu, tj. oddělovač sloupců je čárka, nikoliv středník (jako v českém prostředí). Ukázkový řádek:

1, 1928, 22, "Janet Gaynor", "Seventh Heaven, Street Angel and Sunrise: A Song of Two Humans"

CSV má 5 sloupců: První tři sloupce jsou číselné a další dva řetězce. Je vidět, že řetězec může obsahovat i čárku. Tomu je přizpůsoben regulární výraz:

/([^,]+), ([^,]+), ([^,]+), "([^"]+)", "([^"]+)"/g

Z čeho se skládá?

  • / /g – jen obaluje obecně regulární výraz a g je příznak pro global match, tzn. hledej všechny výskyty (tj. i více výskytů)
  • část ([^,]+), zachytává číselné sloupce: ([^,]+), říká: zachyť (kulaté závorky) řetězec o 1 a více (+) libovolných znacích kromě (^) znaku čárky a zachytávaná část je ještě následované znaky čárka a mezera
  • část "([^"]+)", funguje analogicky, jen zachytáváme až část mezi uvozovkami a tedy uvnitř uvozovek řetězec o 1 a více znacích, které jsou cokoliv kromě uvozovek

Textové editory nebo třeba nástroj Regexr umožnit nahrazení řetězců pomocí regulárních výrazů – tzn. v řetězci náhrady odkazovat na části zachycené regulárním výrazem.

V našem příkladu je náhrada:

<li><em>$4</em> (age $3) in $5 ($2)</li>\n

kde $n, se odkazuje na část řetězce zabalenou v kulatých závorkách, kde n je pořadí (počítáno dle pořadí levé závorky). Zápis \n zajišťuje zalomení řádku.

Výsledkem tak je:

<li><em>Janet Gaynor</em> (age 22) in Seventh Heaven, Street Angel and Sunrise: A Song of Two Humans (1928)</li>

Poznámky

Pokud budete pracovat s CSV, kde je oddělovačem středník, vyměňte v příkladech čárku za středník.

Pokud v CSV za čárkou či středníkem není mezera (jako v našem příkladu), pak ji z regulárního výrazu taky odstraňte.

Pokud se do regulárních výrazů chcete ponořit více, koukněte na kompletní shrnutí syntaxe regulárních výrazů.

Převod CSV na vlastní HTML/XML on-linePokud potřebujete provést transformace nad velkým CSV, není optimální ho kopírovat do Regexru. Doporučuji použít například bezplatný Notepad++, kde funguje přesně stejný regulární výraz a řetězec náhrady. Stačí vybrat volbu Search mode: Regular expression.

Související

Miroslav Pecka

Share
Published by
Miroslav Pecka

Recent Posts

GA4 (not set) problém & jeho řešení

Jak se zbavit (not set) v Session Source a Session Medium?

2 roky ago

Měření QR kódů a offline zdrojů do Google Analytics

Chcete doměřit efekt vaší offline reklamy, ze které vedete lidi na váš web? Jde to…

2 roky ago

5+1 věcí, které se online markeťák může naučit od ajťáka

Tenhle článek jsem měl rozepsaný fakt dlouho, ale je stále aktuální… Trápí mě, že opakovaně…

4 roky ago

Profesionál v onlinu: řemeslo + kontext + přesahy

Poslední dobou jsem se setkal s pár majiteli malých firem, kteří mají web a snaží…

4 roky ago

Nástroje pro tvorbu screencast videí

Občas se mě někdo ptá, co používám pro tvorbu screencastů a online videí. Které nástroje…

4 roky ago

7 Google Analytics video návodů pro efektivnější práci

V rámci 5 videí najdete 7 krátkých video tipů pro zefektivnění práce s Google Analytics…

5 roky ago