CodeKitHub
JSON įrankiai

CSV į XML konverteris

Paskutinį kartą atnaujinta:

Norint konvertuoti CSV į XML, kiekviena eilutė tampa <row> elementu, o kiekvienas stulpelis tampa antriniu žymu, pavadintu pagal jo antraštę — atvirkštinis konvertavimas išgauna po vieną stulpelį kiekvienam skirtingam antrinio žymo pavadinimui, rastam XML. Šis įrankis atlieka šį konvertavimą abiem kryptimis, viskas vyksta jūsų naršyklėje.

Kas yra šis įrankis?

Kai kurios sistemos (senos įmonių programinės įrangos, tam tikros SOAP pagrindu veikiančios API, su RSS susijusios srautų sistemos) tikisi duomenų XML formatu, o skaičiuoklės ir dauguma duomenų importo įrankių tikisi CSV. Šis įrankis perkelia duomenis tarp šių dviejų formatų: CSV → XML apgaubia kiekvieną eilutę <row> elementu šakniniame <rows> elemente, o kiekvienas stulpelis tampa antriniu žymu, pavadintu pagal antraštę; XML → CSV daro atvirkščiai, išgaudamas po vieną stulpelį kiekvienam skirtingam rastam antrinio žymo pavadinimui.

CSV pusė analizuojama naudojant tinkamą kabutėse esančių laukų analizatorių (o ne primityvų skaidymą pagal kablelius), todėl reikšmės, turinčios kablelius, eilučių lūžius ar įterptas kabutes, apdorojamos teisingai. XML pusė analizuojama naudojant naršyklės natyvų DOMParser API — tą pačią sąsają, kurią naršyklės naudoja vidiniam XML dokumentų analizavimui — o ne rankiniu būdu parašytą reguliariosiomis išraiškomis paremtą skaitytuvą, todėl įdėti žymai ir standartinis XML apsaugojimas apdorojami taip, kaip juos apdorotų tikras XML analizatorius.

Stulpelių/žymų pavadinimai, kurie nėra galiojantys XML elementų pavadinimai (turintys tarpų, prasidedantys skaitmeniu ir pan.), automatiškai apvalomi generuojant XML, nes XML elementų pavadinimams taikomos griežtesnės taisyklės nei CSV antraštėms.

Šaltinis: CSV analizavimas vykdomas pagal RFC 4180; XML struktūra atitinka W3C XML 1.0 specifikaciją.

Kodėl jį naudoti?

  • Veikia abiem kryptimis — CSV į XML ir XML į CSV, viename įrankyje.
  • Teisingas CSV analizavimas — apdoroja kabutėse esančius laukus su kableliais, eilučių lūžiais ir apsaugotomis kabutėmis, o ne tik primityvų skaidymą pagal kablelį.
  • Standartais paremtas XML analizavimas — XML → CSV naudoja naršyklės įmontuotą DOMParser, o ne pasirinktinį reguliariosiomis išraiškomis paremtą analizatorių, todėl netinkamai suformuotas XML pranešamas kaip klaida, o ne tyliai sukuria šiukšlinį rezultatą.
  • Automatinis XML apsaugojimas — specialūs simboliai, tokie kaip & ir < jūsų CSV reikšmėse, teisingai apsaugomi generuojant XML.
  • 100% apdorojimas kliento pusėje — niekas, ką čia įklijuojate, neįkeliama į serverį.

Kaip naudoti

  1. Įklijuokite CSV duomenis (su antraštės eilute) arba XML duomenis į langą.
  2. Spustelėkite „CSV → XML“, kad sugeneruotumėte XML, arba „XML → CSV“, kad konvertuotumėte XML atgal į lentelę.
  3. Peržiūrėkite rezultatą — nukopijuokite jį arba atsisiųskite kaip failą.
  4. CSV → XML kryptimi kiekviena eilutė tampa <row> elementu su vienu žymu vienam stulpeliui, apgaubtu <rows> šaknimi.

Pavyzdys

Įvestis

name,age
Alice,30
Bob,25

Išvestis

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

Kiekviena CSV eilutė tampa vienu <row> elementu, o kiekvienas stulpelis tampa antriniu žymu, pavadintu pagal antraštę — perleidus šį XML atgal per „XML → CSV“, atkuriama pradinė dviejų stulpelių lentelė.

Praktiniai patarimai

  • Duomenų perdavimas į seną sistemą ar SOAP API, kuri tikisi XML: pirmiausia konvertuokite savo CSV eksportą čia, tada įklijuokite XML rezultatą tiesiai į paskirties sistemą.
  • Gauto XML eksporto audito atlikimas: paleiskite XML → CSV, kad gautumėte greitą, skaitomą lentelės vaizdą, nereikalaujantį pilno XML redaktoriaus.
  • Jei jūsų XML naudoja giliai įdėtus elementus, o ne paprastą <row><column> struktūrą, šis įrankis neišlygins savavališko įdėjimo — jis tikisi vieno eilučių elementų lygio, kiekviename kuriame yra paprasti stulpelių elementai.

Kodėl DOMParser, o ne rankiniu būdu parašytas XML skaitytuvas

XML turi tikras struktūrines taisykles — įdėtus elementus, atributų kabutes, simbolių apsaugojimą &, <, > ir pan., kurias greitas reguliariosiomis išraiškomis paremtas analizatorius linkęs subtiliai supainioti su bet kokia, ne pačia paprasčiausia, įvestimi. Naudojant naršyklės įmontuotą DOMParser API, šis įrankis remiasi tuo pačiu standartus atitinkančiu XML varikliu, kurį naudoja pati naršyklė XML dokumentams atvaizduoti, o ne perkuria XML analizavimą nuo nulio. Tai taip pat reiškia, kad netinkamai suformuotas XML — neuždarytas žymas, pasiklydęs kampinis skliaustelis — parodo aiškią analizavimo klaidą, o ne tyliai sukuria sugadintą ar nepilną CSV.

Dažniausiai užduodami klausimai

Ar tai teisingai apdoroja CSV reikšmes su kableliais ar kabutėmis?

Taip. CSV analizatorius yra tikras būsenų mašina paremtas analizatorius, kuris seka, ar jis yra kabutėse esančio lauko viduje, todėl kableliai ir eilučių lūžiai kabutėse (pvz., "Smith, John") bei padvigubintos kabutės, naudojamos apsaugoti tikrą kabutės simbolį, apdorojami teisingai — jis tiesiog neskaido pagal kiekvieną kablelį.

Kaip analizuojamas XML — ar tai pasirinktinis reguliariosiomis išraiškomis paremtas analizatorius?

Ne. XML → CSV naudoja naršyklės įmontuotą DOMParser API, kad išanalizuotų XML į tikrą dokumento medį, taip pat, kaip naršyklė analizuoja bet kurį XML dokumentą. Tai reiškia, kad netinkamai suformuotas XML aptinkamas ir pranešamas kaip klaida, o ne tyliai sukuria neteisingą rezultatą, kaip galėtų nutikti su ranka parašytu reguliariosiomis išraiškomis paremtu analizatoriumi.

Kas atsitinka su stulpelių pavadinimais, kurie nėra galiojantys XML žymai?

Viskas, kas nėra raidė, skaitmuo, pabraukimas, brūkšnys ar taškas, pakeičiama pabraukimu, o jei pavadinimas kitaip prasidėtų skaitmeniu ar skyrybos ženklu, prie jo pridedamas pabraukimas priekyje — nes XML elementų pavadinimai negali prasidėti skaičiumi ar turėti tarpų taip, kaip gali CSV antraštė.

Ar mano duomenys įkeliami į serverį?

Ne. Abi konvertavimo kryptys vyksta visiškai JavaScript kalba jūsų naršyklėje, naudojant pačios naršyklės XML analizavimo variklį — niekas niekur nesiunčiama, todėl tai saugu naudoti su eksportuotais verslo ar klientų duomenimis.

Ar konvertavimas CSV → XML → CSV grąžins lygiai tai, nuo ko pradėjau?

Taisyklingam CSV su nuosekliu stulpelių rinkiniu — taip, tokia dviejų krypčių konversija išsaugo reikšmes. Jei jūsų pradinis CSV turėjo nenuoseklius stulpelius eilutėse ar neįprastus simbolius antraščių pavadinimuose, apvalyti žymų pavadinimai reiškia, kad tiksli antraštės rašyba gali būti nevisiškai išsaugota, nors duomenų reikšmės bus.

Susiję įrankiai