CodeKitHub
JSON eszközök

CSV-XML konverter

Utolsó frissítés:

A CSV XML-lé alakításához minden sor egy <row> elemmé válik, minden oszlop pedig egy, a fejléce alapján elnevezett gyerektaggá — a fordított átalakítás egy oszlopot nyer ki minden, az XML-ben talált egyedi gyerektagnévhez. Ez az eszköz elvégzi ezt az átalakítást, mindkét irányban, teljes egészében a böngésződben.

Mi ez az eszköz?

Bizonyos rendszerek (legacy vállalati szoftverek, egyes SOAP-alapú API-k, RSS-hez közeli feedek) XML-ként várják az adatot, míg a táblázatkezelők és a legtöbb adatimport eszköz CSV-t vár. Ez az eszköz a két formátum között mozgatja az adatot: a CSV → XML minden sort egy <row> elembe csomagol egy gyökér <rows> elemen belül, minden oszlop pedig a fejléce alapján elnevezett gyerektaggá válik; az XML → CSV a fordítottját teszi, minden talált egyedi gyerektagnévhez egy oszlopot nyerve ki.

A CSV oldal egy megfelelő, idézett mezőket kezelő elemzővel van feldolgozva (nem naiv, vesszőn alapuló felosztással), így a vesszőket, sortöréseket vagy beágyazott idézőjeleket tartalmazó értékek helyesen kezelendők. Az XML oldal a böngésző natív DOMParser API-jával van elemezve — ugyanazzal az interfésszel, amelyet a böngészők belsőleg használnak XML dokumentumok elemzéséhez — nem egy kézzel írt, regex-alapú olvasóval, így a beágyazott tagek és a szabványos XML escape-elés úgy kezelendő, ahogy egy valódi XML elemző kezeli.

Az olyan oszlop-/tagneveket, amelyek nem érvényes XML elemnevek (szóközt tartalmaznak, számjeggyel kezdődnek stb.), az eszköz automatikusan tisztítja XML generálásakor, mivel az XML elemneveknek szigorúbb szabályaik vannak, mint a CSV fejléceknek.

Forrás: a CSV elemzés az RFC 4180-at követi; az XML szerkezet a W3C XML 1.0 specifikációt követi.

Miért érdemes használni?

  • Mindkét irányban működik — CSV-ből XML-be és XML-ből CSV-be, egy eszközben.
  • Helyes CSV elemzés — kezeli az idézett, vesszőt, sortörést és escape-elt idézőjeleket tartalmazó mezőket, nem csak naiv vesszős felosztás.
  • Szabványalapú XML elemzés — az XML → CSV a böngésző beépített DOMParser-ét használja egyedi regex elemző helyett, így a hibás XML hibaként jelenik meg ahelyett, hogy csendben szemetet állítana elő.
  • Automatikus XML escape-elés — a CSV értékeidben lévő speciális karakterek, mint az & és a <, helyesen escape-elődnek XML generálásakor.
  • 100%-ban kliensoldali — semmi, amit ide beillesztesz, nem kerül feltöltésre egy szerverre.

Használati útmutató

  1. Illessz be CSV adatot (fejlécsorral) vagy XML adatot a mezőbe.
  2. Kattints a "CSV → XML" gombra XML generálásához, vagy az "XML → CSV" gombra az XML visszaalakításához táblázattá.
  3. Nézd át a kimenetet — másold ki, vagy töltsd le fájlként.
  4. CSV → XML esetén minden sor egy <row> elemmé válik egy taggel oszloponként, egy <rows> gyökérbe csomagolva.

Példa

Bemenet

name,age
Alice,30
Bob,25

Kimenet

<?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>

Minden CSV sor egy <row> elemmé válik, minden oszlop pedig a fejléce alapján elnevezett gyerektaggá — ha ezt az XML-t visszafuttatod az "XML → CSV"-n, visszaépíti az eredeti kétoszlopos táblát.

Gyakorlati tippek

  • Adat betáplálása egy legacy rendszerbe vagy SOAP API-ba, amely XML-t vár: alakítsd át itt a CSV exportodat, majd illeszd be közvetlenül az XML kimenetet a célrendszerbe.
  • Egy kapott XML export auditálása: futtasd az XML → CSV-t egy gyors, olvasható táblázatnézetért, egy teljes XML szerkesztő nélkül.
  • Ha az XML-ed mélyen beágyazott elemeket használ egy lapos <row><column> szerkezet helyett, ez az eszköz nem lapítja ki a tetszőleges beágyazást — egy szint sor elemet vár, amelyek mindegyike egyszerű oszlop elemeket tartalmaz.

Miért DOMParser egy kézzel írt XML olvasó helyett

Az XML-nek valódi szerkezeti szabályai vannak — beágyazott elemek, attribútum-idézés, karakter escape-elés az &, <, > jelekhez, és így tovább —, amelyeket egy gyors, regex-alapú elemző hajlamos finoman elrontani mindenen, ami nem a legegyszerűbb bemenet. A böngésző beépített DOMParser API-jának használata azt jelenti, hogy ez az eszköz ugyanarra a szabványkompatibilis XML motorra támaszkodik, amelyet maga a böngésző használ XML dokumentumok megjelenítéséhez, ahelyett hogy az XML elemzést nulláról újraimplementálná. Azt is jelenti, hogy a hibás XML — egy le nem zárt tag, egy elszabadult szögletes zárójel — egyértelmű elemzési hibaként jelenik meg, ahelyett hogy csendben sérült vagy hiányos CSV-t állítana elő.

Gyakori kérdések

Helyesen kezeli a vesszőt vagy idézőjelet tartalmazó CSV értékeket?

Igen. A CSV elemző egy valódi állapotgép-elemző, amely nyomon követi, hogy éppen egy idézett mezőn belül van-e, így az idézőjeleken belüli vesszők és sortörések (pl. "Smith, John") és a szó szerinti idézőjel-karakter escape-eléséhez használt megduplázott idézőjelek is helyesen kezelendők — nem egyszerűen minden vesszőnél felosztva.

Hogyan elemzi az XML-t — egyedi regex elemző?

Nem. Az XML → CSV a böngésző beépített DOMParser API-ját használja, hogy az XML-t egy valódi dokumentumfává elemezze, ugyanúgy, ahogy a böngésző bármely XML dokumentumot elemez. Ez azt jelenti, hogy a hibás XML-t az eszköz felismeri és hibaként jelzi, ahelyett hogy csendben hibás kimenetet állítana elő, ahogy egy kézzel írt, regex-alapú elemző tehetné.

Mi történik az olyan oszlopnevekkel, amelyek nem érvényes XML tagek?

Minden, ami nem betű, számjegy, aláhúzásjel, kötőjel vagy pont, aláhúzásjelre cserélődik, és egy vezető aláhúzásjel kerül hozzá, ha a név egyébként számjeggyel vagy írásjellel kezdődne — mivel az XML elemnevek nem kezdődhetnek számmal, és nem tartalmazhatnak szóközt úgy, ahogy egy CSV fejléc igen.

Feltöltésre kerül az adatom egy szerverre?

Nem. Az átalakítás mindkét iránya teljes egészében JavaScriptben, a böngésződben fut, a böngésző saját XML elemző motorját használva — semmi sem kerül elküldésre sehova, így biztonságosan használható exportált üzleti vagy ügyféladatokkal.

Ha CSV-t XML-lé, majd vissza CSV-vé alakítok, pontosan azt kapom vissza, amivel kezdtem?

Jól formázott CSV esetén, konzisztens oszlopkészlettel, igen — a körút megőrzi az értékeket. Ha az eredeti CSV-dben inkonzisztens oszlopok voltak a sorok között, vagy szokatlan karakterek a fejlécnevekben, a tisztított tagnevek miatt a pontos fejléc-írásmód nem feltétlenül marad tökéletesen megőrizve, bár az adatértékek igen.

Kapcsolódó eszközök