Langsung ke alat
ViewCSV
File tidak diunggah

Konversi CSV ke XML

orders.csv· DATA CONTOH15 baris · 8 kolom
Simpan nilai sebagai
<?xml version="1.0" encoding="UTF-8"?>
<rows>
  <row>
    <order_id>001041</order_id>
    <customer>Budi Lestari</customer>
    <city>Jakarta</city>
    <product>Desk lamp</product>
    <quantity>1</quantity>
    <unit_price>204.83</unit_price>
    <order_date>2026-01-19</order_date>
    <status>shipped</status>
  </row>
  <row>
    <order_id>001042</order_id>
    <customer>Andi Wijaya</customer>
    <city>Bandung</city>
    <product>Desk lamp</product>
    <quantity>1</quantity>
    <unit_price>139.94</unit_price>
    <order_date>2026-02-26</order_date>
    <status>refunded</status>
  </row>
  <row>
    <order_id>001043</order_id>
    <customer>Siti Saputra</customer>
    <city>Medan</city>
    <product>Chair, ergonomic</product>
    <quantity>3</quantity>
    <unit_price>128.52</unit_price>
    <order_date>2026-03-01</order_date>
    <status>pending</status>
  </row>
  <row>
    <order_id>001044</order_id>
    <customer>Rizky Kurniawan</customer>
    <city>Medan</city>
    <product>Coffee beans 1kg</product>
    <quantity>4</quantity>
    <unit_price>229.71</unit_price>
    <order_date>2026-04-27</order_date>
    <status>refunded</status>
  </row>
  <row>
    <order_id>001045</order_id>
    <customer>Rizky Lestari</customer>
    <city>Jakarta</city>
    <product>Monitor 27"</product>
    <quantity>8</quantity>
    <unit_price/>
    <order_date>2026-05-09</order_date>
    <status>pending</status>
  </row>
  <row>
    <order_id>001046</order_id>
    <customer>Fajar Gunawan</customer>
    <city>Bandung</city>
    <product>Monitor 27"</product>
    <quantity>4</quantity>
    <unit_price>221.25</unit_price>
    <order_date>2026-06-20</order_date>
    <status>refunded</status>
  </row>
  <row>
    <order_id>001047</order_id>
    <customer> Fajar Saputra </customer>
    <city>Yogyakarta</city>
    <product>USB-C cable</product>
    <quantity>3</quantity>
    <unit_price>22.40</unit_price>
    <order_date>2026-07-04</order_date>
    <status>refunded</status>
  </row>
  <row>
    <order_id>001048</order_id>
    <customer>Rizky Wijaya</customer>
    <city>Bandung</city>
    <product>Monitor 27"</product>
    <quantity>2</quantity>
    <unit_price>157.07</unit_price>
    <order_date>2026-08-11</order_date>
    <status>refunded</status>
  </row>
  <row>
    <order_id>001049</order_id>
    <customer>Andi Lestari</customer>
    <city>Yogyakarta</city>
    <product>Coffee beans 1kg</product>
    <quantity>2</quantity>
    <unit_price>219.18</unit_price>
    <order_date>2026-09-10</order_date>
    <status>shipped</status>
  </row>
  <row>
    <order_id>001050</order_id>
    <customer>Nur Halim</customer>
    <city>Medan</city>
    <product>USB-C cable</product>
    <quantity>1</quantity>
    <unit_price>210.97</unit_price>
    <order_date>2026-01-15</order_date>
    <status>refunded</status>
  </row>
  <row>
    <order_id>001051</order_id>
    <customer>Putri Halim</customer>
    <city>Medan</city>
    <product>USB-C cable</product>
    <quantity>8</quantity>
    <unit_price>136.07</unit_price>
    <order_date>2026-02-25</order_date>
    <status>shipped</status>
  </row>
  <row>
    <order_id>001052</order_id>
    <customer>Rizky Hidayat</customer>
    <city>Denpasar</city>
    <product>Desk lamp</product>
    <quantity>3</quantity>
    <unit_price>9.42</unit_price>
    <order_date>2026-03-05</order_date>
    <status>refunded</status>
  </row>
  <row>
    <order_id>001053</order_id>
    <customer>Budi Kurniawan</customer>
    <city>Bandung</city>
    <product>Notebook A5</product>
    <quantity>5</quantity>
    <unit_price>174.88</unit_price>
    <order_date>2026-04-25</order_date>
    <status>pending</status>
  </row>
  <row>
    <order_id>001054</order_id>
    <customer>Putri Kurniawan</customer>
    <city>Bandung</city>
    <product>Desk lamp</product>
    <quantity>2</quantity>
    <unit_price>103.84</unit_price>
    <order_date>2026-05-15</order_date>
    <status>paid</status>
  </row>
  <row>
    <order_id>001043</order_id>
    <customer>Siti Saputra</customer>
    <city>Medan</city>
    <product>Chair, ergonomic</product>
    <quantity>3</quantity>
    <unit_price>128.52</unit_price>
    <order_date>2026-03-01</order_date>
    <status>pending</status>
  </row>
</rows>

15 baris · 1 file

Buka atau tempel file CSV dan dapatkan XML yang well-formed: satu elemen root, satu elemen baris per baris data, dan setiap nilai sebagai elemen anak atau atribut. Judul kolom yang bukan nama XML yang sah, seperti Order ID atau 2024 total, diganti namanya dan setiap penggantian dicantumkan. File dikonversi di browser Anda dan tidak pernah diunggah.

Cara mengonversi CSV ke XML

  1. Pilih Buka file, seret file .csv, .tsv, atau .txt ke alat ini, atau pilih Tempel. Periksa pemisah dan pengodean di Pengaturan impor jika kolomnya tampak salah.
  2. Beri nama Elemen root dan Elemen baris (bawaannya rows dan row) sesuai yang diharapkan sistem penerima.
  3. Pilih Simpan nilai sebagai, cara menangani nilai kosong, Indentasi, dan deklarasi, lalu pilih Salin atau Unduh XML.

Jika sistem yang membaca file mengharapkan nama tag tertentu, ganti dulu nama kolom CSV dengan Ganti nama dan urutan kolom CSV agar tidak perlu ada penggantian nama otomatis.

Opsi struktur XML

Elemen anakPilihan bawaan: <row><Customer>Smith &amp; Sons</Customer>…</row>. Mempertahankan baris baru di dalam nilai dan cocok untuk kebanyakan alat impor.
AtributSatu elemen yang menutup sendiri per baris: <row Customer="Smith &amp; Sons" …/>. Ringkas; tab dan baris baru di dalam nilai ditulis sebagai &#9;, &#10;, dan &#13; agar tetap dipertahankan parser.
Jangan sertakan nilai kosongNonaktif secara bawaan, jadi sel kosong menjadi elemen kosong seperti <Ship_date/>. Jika aktif, elemen atau atributnya tidak disertakan di baris tersebut.
Indentasi2 spasi (bawaan), 4 spasi, atau Tanpa (diringkas), yang menulis seluruh dokumen dalam satu baris.
Tambahkan deklarasi XMLAktif secara bawaan: baris pertamanya <?xml version="1.0" encoding="UTF-8"?>. Nonaktifkan jika XML akan disisipkan ke dokumen lain.

Nama root dan baris melewati aturan nama yang sama dengan judul kolom; isian yang kosong atau tidak valid kembali ke rows atau row, atau diberi awalan garis bawah.

Cara nama kolom menjadi nama XML

  • Spasi menjadi _, dan karakter apa pun selain huruf, digit, ., -, dan _ menjadi _: Total (EUR) → Total__EUR_, e-mail:work → e-mail_work. Titik dua juga diganti, jadi tidak ada prefiks namespace yang terbentuk.
  • Nama yang diawali digit, ., atau - diberi garis bawah di depan (2024 total → _2024_total); begitu pula nama yang diawali xml dengan huruf besar/kecil apa pun, karena dicadangkan oleh XML (xml_ref → _xml_ref).
  • Jika dua judul kolom berakhir dengan nama yang sama, yang kedua mendapat _2 (a b dan a_b → a_b, a_b_2). Nama XML membedakan huruf besar/kecil, jadi Name dan name tetap berbeda.
  • Huruf dari aksara apa pun dipertahankan: Größe dan 価格 adalah nama XML yang valid. Judul kolom yang kosong lebih dulu menjadi Column 7, lalu Column_7.
  • Setiap penggantian nama dicantumkan di bawah opsi sebagai old → new, dan pemberitahuan di atas pratinjau menyebutkan jumlahnya.

Cara nilai ditulis

  • &, <, dan > di-escape di teks elemen; atribut juga meng-escape ". Selebihnya, nilai ditulis persis seperti di CSV: 00731 tetap dengan nol di depannya dan tidak ada tipe yang ditebak.
  • XML 1.0 melarang sebagian besar karakter kontrol (U+0000–U+001F kecuali tab, line feed, dan carriage return), U+FFFE, U+FFFF, dan surrogate tanpa pasangan, bahkan jika di-escape. Karakter itu dihapus dan jumlah nilai yang terdampak ditampilkan.
  • Koma, tanda kutip, dan baris baru bertanda kutip dibaca sesuai RFC 4180; baris baru tetap menjadi baris baru sungguhan di dalam elemen anak.
  • Hasilnya selalu UTF-8.

Jika parser XML atau sistem impor menolak file

  • Alat impor saya tidak menemukan sebuah field. Kemungkinan namanya diganti. Periksa daftar di bawah opsi, lalu ganti nama kolom di CSV atau sesuaikan pemetaan di sistem penerima.
  • Parser melaporkan kesalahan pengodean. Buka file sumber dengan pengodean aslinya di Pengaturan impor; XML hanya benar-benar UTF-8 jika CSV-nya terbaca dengan benar.
  • Semua data ada di satu elemen. Pemisahnya salah ditebak; pilih koma, titik koma, tab, atau garis tegak di Pengaturan impor.
  • Saya perlu CDATA, namespace, atau skema. Konverter ini hanya menulis elemen dan atribut biasa; tambahkan hal-hal itu di langkah berikutnya.

Batas dan privasi

File hingga 25 MB, 100.000 baris, atau 2 juta sel dibuka dengan pratinjau langsung 200 baris pertama. File yang lebih besar dikonversi dalam mode streaming: file dibaca dua kali per bagian (sekali untuk mengukur kolom, sekali untuk menulis), sebuah pemberitahuan menyebutkan bahwa unduhan mencakup seluruh file, dan Salin tidak tersedia. Satu file hasil dibatasi hingga 4 GB.

Konversi berjalan di worker latar belakang pada tab ini, jadi halaman tetap responsif dan Batal bisa menghentikannya. File CSV tidak pernah dikirim ke server.

Contoh: ekspor pesanan dengan judul kolom yang perlu diganti nama

Ekspor pesanan dengan spasi dan tanda kurung di judul kolom, ampersand, kurung sudut, dan tanggal kosong, dikonversi dengan pengaturan bawaan. Tiga judul kolom diganti namanya; Ship date yang kosong menjadi <Ship_date/>.

CSV
Order ID,Customer,Total (EUR),Ship date
10071,"Smith & Sons",249.00,2025-02-03
10072,"Café <Lumière>",18.50,
XML
<?xml version="1.0" encoding="UTF-8"?>
<rows>
  <row>
    <Order_ID>10071</Order_ID>
    <Customer>Smith &amp; Sons</Customer>
    <Total__EUR_>249.00</Total__EUR_>
    <Ship_date>2025-02-03</Ship_date>
  </row>
  <row>
    <Order_ID>10072</Order_ID>
    <Customer>Café &lt;Lumière&gt;</Customer>
    <Total__EUR_>18.50</Total__EUR_>
    <Ship_date/>
  </row>
</rows>

Tanya jawab

Mengapa nama kolom saya diubah?

Nama elemen XML tidak boleh memuat spasi atau sebagian besar tanda baca, tidak boleh diawali digit, dan tidak boleh diawali xml. Konverter melakukan perubahan sekecil mungkin agar didapat nama yang sah dan unik, lalu mencantumkan setiap perubahannya.

Sebaiknya pakai elemen atau atribut?

Gunakan elemen anak, kecuali sistem penerima meminta atribut. Elemen mempertahankan baris baru seperti tertulis; nilai atribut dinormalisasi spasinya oleh parser XML, itulah sebabnya konverter menulis tab dan baris baru sebagai referensi karakter.

Apakah angka atau tanggal diberi tipe?

Tidak. XML tidak punya tipe nilai bawaan, jadi setiap nilai ditulis sebagai teks seperti di CSV. Tipe datang dari skema atau program yang membaca file tersebut.

Standar dan referensi