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
- Pilih Buka file, seret file
.csv,.tsv, atau.txtke alat ini, atau pilih Tempel. Periksa pemisah dan pengodean di Pengaturan impor jika kolomnya tampak salah. - Beri nama Elemen root dan Elemen baris (bawaannya
rowsdanrow) sesuai yang diharapkan sistem penerima. - 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 anak | Pilihan bawaan: <row><Customer>Smith & Sons</Customer>…</row>. Mempertahankan baris baru di dalam nilai dan cocok untuk kebanyakan alat impor. |
|---|---|
| Atribut | Satu elemen yang menutup sendiri per baris: <row Customer="Smith & Sons" …/>. Ringkas; tab dan baris baru di dalam nilai ditulis sebagai 	, , dan agar tetap dipertahankan parser. |
| Jangan sertakan nilai kosong | Nonaktif secara bawaan, jadi sel kosong menjadi elemen kosong seperti <Ship_date/>. Jika aktif, elemen atau atributnya tidak disertakan di baris tersebut. |
| Indentasi | 2 spasi (bawaan), 4 spasi, atau Tanpa (diringkas), yang menulis seluruh dokumen dalam satu baris. |
| Tambahkan deklarasi XML | Aktif 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 diawalixmldengan 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 bdana_b→a_b,a_b_2). Nama XML membedakan huruf besar/kecil, jadiNamedannametetap berbeda. - Huruf dari aksara apa pun dipertahankan:
Größedan価格adalah nama XML yang valid. Judul kolom yang kosong lebih dulu menjadiColumn 7, laluColumn_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:00731tetap 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/>.
Order ID,Customer,Total (EUR),Ship date 10071,"Smith & Sons",249.00,2025-02-03 10072,"Café <Lumière>",18.50,
<?xml version="1.0" encoding="UTF-8"?>
<rows>
<row>
<Order_ID>10071</Order_ID>
<Customer>Smith & Sons</Customer>
<Total__EUR_>249.00</Total__EUR_>
<Ship_date>2025-02-03</Ship_date>
</row>
<row>
<Order_ID>10072</Order_ID>
<Customer>Café <Lumière></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.