CodeKitHub
Nástroje JSON

Převodník CSV na XML

Naposledy aktualizováno:

Při převodu CSV na XML se z každého řádku stane element <row> a z každého sloupce podřízený tag pojmenovaný podle záhlaví — opačný převod pak z XML extrahuje jeden sloupec pro každý odlišný název podřízeného tagu. Tento nástroj provádí tento převod oběma směry, kompletně přímo ve vašem prohlížeči.

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á

  1. Vložte data CSV (s řádkem záhlaví) nebo data XML do pole.
  2. Klikněte na „CSV → XML“ pro vygenerování XML, nebo na „XML → CSV“ pro převod XML zpět na tabulku.
  3. Zkontrolujte výstup — zkopírujte jej nebo si jej stáhněte jako soubor.
  4. 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,25

Vý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.

Související nástroje