Co je tento nástroj?
Některé systémy (starší podnikový software, některá SOAP API, formáty blízké RSS) očekávají data ve formátu XML, zatímco tabulkové procesory a většina nástrojů pro import dat očekávají CSV. Tento nástroj přesouvá data mezi oběma formáty: CSV → XML zabalí každý řádek do elementu <row> uvnitř kořenového elementu <rows>, přičemž z každého sloupce se stane podřízený tag pojmenovaný podle záhlaví; XML → CSV dělá opak — extrahuje jeden sloupec pro každý odlišný název podřízeného tagu, který najde.
Strana CSV je zpracována pomocí skutečného parseru pro pole v uvozovkách (nikoli naivním rozdělením podle čárek), takže hodnoty obsahující čárky, zalomení řádků nebo vložené uvozovky jsou zpracovány správně. Strana XML je zpracována pomocí nativního rozhraní prohlížeče DOMParser — stejného rozhraní, které prohlížeče interně používají k analýze XML dokumentů — místo ručně psaného čtečky založené na regulárních výrazech, takže vnořené tagy a standardní escapování XML jsou zpracovány stejně jako skutečným XML parserem.
Názvy sloupců/tagů, které nejsou platnými názvy XML elementů (obsahují mezery, začínají číslicí atd.), jsou při generování XML automaticky sanitizovány, protože názvy XML elementů mají přísnější pravidla než záhlaví CSV.
Zdroj: parsování CSV vychází z RFC 4180; struktura XML vychází ze specifikace W3C XML 1.0.
Proč ho používat?
- Funguje oběma směry — CSV na XML i XML na CSV, v jednom nástroji.
- Správné parsování CSV — zvládá pole v uvozovkách s čárkami, zalomeními řádků a escapovanými uvozovkami, nejen naivní rozdělení podle čárek.
- Parsování XML podle standardů — XML → CSV využívá vestavěný DOMParser prohlížeče místo vlastního parseru na bázi regulárních výrazů, takže poškozené XML se ohlásí jako chyba místo tichého vytvoření nesmyslného výstupu.
- Automatické escapování XML — speciální znaky jako & a < ve vašich hodnotách CSV se při generování XML správně escapují.
- 100% na straně klienta — nic z toho, co sem vložíte, se neodesílá na server.
Jak se používá
- Vložte data CSV (s řádkem záhlaví) nebo data XML do pole.
- Klikněte na „CSV → XML“ pro vygenerování XML, nebo na „XML → CSV“ pro převod XML zpět na tabulku.
- Zkontrolujte výstup — zkopírujte jej nebo si jej stáhněte jako soubor.
- U CSV → XML se z každého řádku stane element <row> s jedním tagem na sloupec, zabalený v kořenovém elementu <rows>.
Příklad
Vstup
name,age
Alice,30
Bob,25Výstup
<?xml version="1.0" encoding="UTF-8"?>
<rows>
<row>
<name>Alice</name>
<age>30</age>
</row>
<row>
<name>Bob</name>
<age>25</age>
</row>
</rows>Z každého řádku CSV vznikne jeden element <row> a z každého sloupce podřízený tag pojmenovaný podle záhlaví — provedením zpětného převodu „XML → CSV“ se obnoví původní dvousloupcová tabulka.
Praktické tipy
- Pokud potřebujete data pro starší systém nebo SOAP API očekávající XML: nejprve zde převeďte svůj export CSV a výsledné XML pak vložte přímo do cílového systému.
- Kontrolujete export XML, který jste dostali? Spusťte XML → CSV a získáte rychlý, přehledný tabulkový náhled bez nutnosti plnohodnotného XML editoru.
- Pokud vaše XML používá hluboce vnořené elementy místo ploché struktury <row><column>, tento nástroj libovolné vnoření nesploští — očekává jednu úroveň řádkových elementů, z nichž každý obsahuje jednoduché sloupcové elementy.
Proč DOMParser místo ručně psané čtečky XML
XML má reálná strukturální pravidla — vnořené elementy, uvozování atributů, escapování znaků & , <, > a podobně — která rychlý parser na bázi regulárních výrazů obvykle jemně pokazí u čehokoli složitějšího než nejjednodušší vstup. Použití vestavěného rozhraní prohlížeče DOMParser znamená, že tento nástroj spoléhá na stejný standardní XML engine, který prohlížeč sám používá k vykreslování XML dokumentů, místo aby parsování XML znovu implementoval od nuly. Znamená to také, že poškozené XML — neuzavřený tag, přebytečná lomená závorka — se projeví jako jasná chyba parsování místo tichého vytvoření poškozeného nebo neúplného CSV.
Časté dotazy
Zvládá nástroj správně hodnoty CSV s čárkami nebo uvozovkami?
Ano. Parser CSV je skutečný stavový parser, který sleduje, zda se právě nachází uvnitř pole v uvozovkách, takže čárky a zalomení řádků uvnitř uvozovek (např. „Novák, Jan“) i zdvojené uvozovky použité k escapování skutečného znaku uvozovky jsou zpracovány správně — nedělí prostě text podle každé čárky.
Jak je zpracováváno XML — jde o vlastní parser na bázi regulárních výrazů?
Ne. XML → CSV využívá vestavěné rozhraní prohlížeče DOMParser k analýze XML do skutečného stromu dokumentu, stejně jako to prohlížeč dělá u jakéhokoli XML dokumentu. To znamená, že poškozené XML je detekováno a ohlášeno jako chyba, místo aby tiše vytvořilo nesprávný výstup, jak by se mohlo stát u ručně psaného parseru na bázi regulárních výrazů.
Co se stane s názvy sloupců, které nejsou platnými tagy XML?
Cokoli, co není písmeno, číslice, podtržítko, spojovník nebo tečka, se nahradí podtržítkem, a pokud by název jinak začínal číslicí nebo interpunkcí, přidá se na začátek podtržítko — protože názvy XML elementů nemohou začínat číslicí ani obsahovat mezery tak, jako to může záhlaví CSV.
Nahrávají se moje data na server?
Ne. Oba směry převodu běží kompletně v JavaScriptu přímo ve vašem prohlížeči, s využitím vlastního XML enginu prohlížeče — nic se nikam neodesílá, takže je nástroj bezpečný i pro exportovaná firemní nebo zákaznická data.
Vrátí mi převod CSV → XML → CSV přesně to, s čím jsem začal/a?
U dobře formátovaného CSV s konzistentní sadou sloupců ano — zpětný převod zachová hodnoty. Pokud vaše původní CSV mělo nekonzistentní sloupce napříč řádky nebo neobvyklé znaky v názvech záhlaví, kvůli sanitizovaným názvům tagů se nemusí přesně zachovat původní zápis záhlaví, hodnoty dat však ano.