CodeKitHub
Alat JSON

Penukar CSV ke XML

Kemas kini terakhir:

Untuk menukar CSV kepada XML, setiap baris menjadi elemen <row> dan setiap lajur menjadi tag anak dinamakan mengikut headernya — penukaran songsang mengekstrak satu lajur bagi setiap nama tag anak berbeza yang dijumpai dalam XML itu. Alat ini melakukan penukaran itu, dalam kedua-dua arah, sepenuhnya dalam pelayar anda.

Apakah alat ini?

Sesetengah sistem (perisian enterprise warisan, sesetengah API berasaskan SOAP, feed sejenis RSS) menjangkakan data sebagai XML, manakala hamparan dan kebanyakan alat import data menjangkakan CSV. Alat ini menggerakkan data antara kedua-dua format: CSV → XML membalut setiap baris dalam elemen <row> di dalam elemen root <rows>, dengan setiap lajur menjadi tag anak dinamakan mengikut header; XML → CSV melakukan sebaliknya, mengekstrak satu lajur bagi setiap nama tag anak berbeza yang ia jumpai.

Bahagian CSV dihurai dengan parser medan berpetikan yang betul (bukan pemisahan naif pada koma), jadi nilai yang mengandungi koma, pemisah baris, atau petikan terbenam dikendalikan dengan betul. Bahagian XML dihurai menggunakan API DOMParser asli pelayar — antara muka yang sama digunakan pelayar secara dalaman untuk menghurai dokumen XML — dan bukannya pembaca berasaskan regex yang ditulis tangan, jadi tag bersarang dan pelepasan XML standard dikendalikan sepertimana parser XML sebenar mengendalikannya.

Nama lajur/tag yang bukan nama elemen XML sah (mengandungi ruang, bermula dengan digit, dan lain-lain) secara automatik dibersihkan apabila menjana XML, kerana nama elemen XML mempunyai peraturan lebih ketat daripada header CSV.

Sumber: penghuraian CSV mengikut RFC 4180; struktur XML mengikut spesifikasi XML 1.0 W3C.

Kenapa guna alat ini?

  • Berfungsi dalam kedua-dua arah — CSV ke XML dan XML ke CSV, dalam satu alat.
  • Penghuraian CSV yang betul — mengendalikan medan berpetikan dengan koma, pemisah baris dan petikan dilepas, bukan sekadar pemisahan koma naif.
  • Penghuraian XML berasaskan standard — XML → CSV menggunakan DOMParser terbina dalam pelayar dan bukannya parser regex tersuai, jadi XML cacat dilaporkan sebagai ralat dan bukannya secara senyap menghasilkan sampah.
  • Pelepasan XML automatik — aksara khas seperti & dan < dalam nilai CSV anda dilepaskan dengan betul apabila menjana XML.
  • 100% sisi klien — tiada apa yang anda tampal di sini dimuat naik ke pelayan.

Cara menggunakannya

  1. Tampal data CSV (dengan baris header) atau data XML ke dalam kotak.
  2. Klik "CSV → XML" untuk jana XML, atau "XML → CSV" untuk tukar XML kembali kepada jadual.
  3. Semak hasilnya — salin atau muat turun sebagai fail.
  4. Untuk CSV → XML, setiap baris menjadi elemen <row> dengan satu tag bagi setiap lajur, dibalut dalam root <rows>.

Contoh

Input

name,age
Alice,30
Bob,25

Hasil

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

Setiap baris CSV menjadi satu elemen <row>, dan setiap lajur menjadi tag anak dinamakan mengikut header — menjalankan XML ini kembali melalui "XML → CSV" membina semula jadual dua lajur asal.

Tip praktikal

  • Memberi data ke sistem warisan atau API SOAP yang menjangka XML: tukar eksport CSV anda di sini dahulu, kemudian tampal output XML terus ke dalam sistem sasaran.
  • Mengaudit eksport XML yang anda terima: jalankan XML → CSV untuk dapatkan paparan jadual yang cepat dan mudah dibaca tanpa perlu editor XML penuh.
  • Jika XML anda menggunakan elemen bersarang dalam yang jauh dan bukannya struktur <row><column> rata, alat ini tidak akan meratakan bersarangan sembarangan — ia menjangka satu tahap elemen row, setiap satu mengandungi elemen lajur mudah.

Kenapa DOMParser dan bukan pembaca XML tulisan tangan

XML mempunyai peraturan struktur sebenar — elemen bersarang, petikan atribut, pelepasan aksara untuk &, <, >, dan sebagainya — yang parser berasaskan regex ringkas cenderung tersilap secara halus pada apa-apa selain input paling ringkas. Menggunakan API DOMParser terbina dalam pelayar bermakna alat ini bergantung pada enjin XML yang sama patuh standard yang pelayar sendiri gunakan untuk render dokumen XML, dan bukannya melaksanakan semula penghuraian XML dari awal. Ia juga bermakna XML cacat — tag tidak ditutup, tanda kurungan sudut yang tersasar — muncul sebagai ralat huraian yang jelas dan bukannya secara senyap menghasilkan CSV yang rosak atau tidak lengkap.

Soalan lazim

Adakah ini mengendalikan nilai CSV dengan koma atau petikan dengan betul?

Ya. Parser CSV ialah parser state-machine yang sebenar yang menjejaki sama ada ia berada dalam medan berpetikan, jadi koma dan pemisah baris dalam petikan (cth. "Smith, John") dan petikan digandakan yang digunakan untuk melepaskan aksara petikan literal semuanya dikendalikan dengan betul — ia bukan sekadar memisahkan pada setiap koma.

Bagaimana XML dihurai — adakah ia parser regex tersuai?

Tidak. XML → CSV menggunakan API DOMParser terbina dalam pelayar untuk menghurai XML itu menjadi pepohon dokumen sebenar, sama seperti pelayar menghurai mana-mana dokumen XML. Ini bermakna XML cacat dikesan dan dilaporkan sebagai ralat, dan bukannya secara senyap menghasilkan hasil salah sebagaimana parser berasaskan regex tulisan tangan mungkin lakukan.

Apa berlaku kepada nama lajur yang bukan tag XML sah?

Apa sahaja yang bukan huruf, digit, garis bawah, sengkang atau titik digantikan dengan garis bawah, dan garis bawah di hadapan ditambah jika nama itu sebaliknya bermula dengan digit atau tanda baca — kerana nama elemen XML tidak boleh bermula dengan nombor atau mengandungi ruang sebagaimana header CSV boleh.

Adakah data saya dimuat naik ke pelayan?

Tidak. Kedua-dua arah penukaran berjalan sepenuhnya dalam JavaScript dalam pelayar anda, menggunakan enjin penghuraian XML pelayar sendiri — tiada apa dihantar ke mana-mana, jadi ia selamat digunakan dengan data perniagaan atau pelanggan yang dieksport.

Adakah tukar CSV → XML → CSV akan beri semula tepat apa yang saya mulakan?

Untuk CSV terbentuk baik dengan set lajur konsisten, ya — pusingan itu mengekalkan nilai. Jika CSV asal anda mempunyai lajur tidak konsisten merentasi baris atau aksara luar biasa dalam nama header, nama tag yang dibersihkan bermakna ejaan header tepat mungkin tidak dikekalkan sempurna, walaupun nilai data akan kekal.

Alat berkaitan