Konverter XML ke CSV Gratis

Konversi data XML ke format CSV dengan deteksi otomatis.

Tidak ada data yang meninggalkan perangkat Anda

Cara penggunaan

  1. Tempel atau ketik data XML Anda di area sebelah kiri.
  2. Alat secara otomatis mendeteksi elemen yang berulang dan meratakan struktur bersarang.
  3. Pratinjau data Anda di sebelah kanan. Klik Unduh CSV untuk menyimpan berkas yang dikonversi.

Pertanyaan yang sering diajukan

Bagaimana elemen bersarang ditangani?

Elemen bersarang diratakan dengan notasi titik. Misalnya, «person.address.city» menjadi satu header kolom.

Bagaimana jika elemen memiliki jumlah anak yang berbeda?

Nilai yang hilang dibiarkan kosong dalam output CSV. Semua header kolom dipertahankan meskipun beberapa baris tidak memiliki nilai tertentu.

Bagaimana alat mendeteksi elemen yang berulang?

Alat secara otomatis mengidentifikasi jenis elemen yang paling sering dalam XML Anda dan menggunakannya sebagai sumber baris.

Mengapa Konversi XML-ke-CSV Sering Muncul

XML bersifat verbose dan hierarkis; CSV datar dan padat. Banyak data dunia nyata yang berguna ada dalam XML, sitemap.xml, feed RSS / Atom, file ekspor WordPress, konfigurasi Apple plist, daftar dependensi pom.xml Maven, trek GPS (GPX), penanda Google Earth (KML), format laporan bank (CAMT.053, MT940 dalam bentuk XML), feed produk e-commerce, healthcare HL7 v3, laporan keuangan dalam XBRL, lembaran musik dalam MusicXML, dan hampir tidak ada yang dapat dianalisis tanpa terlebih dahulu diratakan menjadi baris. Excel, Google Sheets, SQL LOAD DATA, Pandas, R, Tableau, Power BI semuanya mengonsumsi CSV secara langsung; memasukkan XML Anda ke salah satu alat tersebut berarti terlebih dahulu mengonversi.

Ketidakcocokan Mendasar

XML memungkinkan penggunaan bersarang yang sembarang; CSV bersifat dua dimensi. Tidak ada pemetaan XML→CSV yang lossless dan serbaguna. Setiap konverter harus membuat asumsi tentang level pohon mana yang mewakili «baris» dan cara menangani penggunaan bersarang yang lebih dalam. Dua bentuk umum:

Alat mendeteksi elemen berulang secara otomatis dengan menemukan anak langsung paling sering dari root, yang benar untuk ~90% feed XML nyata. Jika XML Anda tidak sesuai pola tersebut, proses terlebih dahulu dengan skrip XPath cepat atau edit secara manual menjadi bentuk record berulang.

Feed XML Umum yang Dikonversi dengan Baik

Cara Atribut, Penggunaan Bersarang, dan Anak Berulang Ditangani

Enkoding: Jebakan Excel

XML mendeklarasikan enkodingnya melalui <?xml version="1.0" encoding="UTF-8"?>. CSV tidak memiliki deklarasi enkoding; konsumen menebaknya. Excel di Windows defaultnya Windows-1252, sehingga membuka CSV UTF-8 tanpa Byte Order Mark menampilkan mojibake (é menjadi é, ü menjadi ü). Solusinya: simpan CSV dengan UTF-8 BOM () di awal, gunakan wizard impor Data → Dari Teks/CSV Excel dan pilih UTF-8 secara eksplisit, atau buka file di Google Sheets yang menangani UTF-8 dengan benar tanpa BOM.

Pilihan Pembatas

Menurut RFC 4180, pembatas CSV kanonik adalah koma. Alat ini juga mendukung titik koma, tab, dan pipe, pilih yang sesuai untuk audiens Anda:

Menurut RFC 4180, kolom yang mengandung pembatas yang dipilih, jeda baris, atau tanda kutip ganda secara otomatis dibungkus dalam tanda kutip ganda; tanda kutip ganda yang tertanam di-escape dengan cara menggandakannya. Aturan quoting yang sama berlaku terlepas dari pembatas yang Anda pilih.

Privasi

Payload XML sering mengandung informasi rahasia: transaksi laporan bank, data karyawan internal, sitemap yang mengungkap URL internal, rekam medis, katalog produk yang dilindungi NDA. DOMParser bawaan browser berjalan sepenuhnya di tab Anda, tidak ada permintaan jaringan, tidak ada roundtrip server, tidak ada entri log. Data masuk dari clipboard Anda ke pohon yang di-parsing di memori, diproses sekali untuk perataan, dan hasilnya mendarat di textarea output. Jika Anda tidak mengklik Unduh, tidak ada yang bahkan ditulis ke disk.

Kesalahan Umum

  1. Menempel XML yang bukan berbentuk record berulang. Dokumen seperti file konfigurasi tunggal tanpa pengulangan tidak akan diratakan menjadi CSV yang dapat digunakan. Konverter dirancang untuk XML «daftar item serupa».
  2. Mengharapkan awalan atribut dapat dibalikkan. <product id="42"> menjadi kolom bernama id, bukan product@id atau product.id. Jika Anda mengimpor ulang CSV di tempat lain sebagai XML, Anda perlu melakukan pemetaan ulang.
  3. Pembatas yang salah untuk audiens. CSV dengan koma yang dibuka di instalasi Excel Prancis dapat kolaps menjadi satu kolom. Cocokkan pembatas dengan tempat file akan berakhir.
  4. Lupa UTF-8 BOM untuk Excel. Karakter non-Latin terlihat rusak di Windows Excel tanpa BOM. Tambahkan atau buka file di Google Sheets / Excel for the web.
  5. Mencoba mengonversi XHTML atau DocBook. XML dokumen konten campuran tidak diratakan dengan bersih, gunakan pipeline XML/XSLT yang tepat untuk itu, bukan konverter tabular.
  6. Risiko CSV-injection yang sudah ada sebelumnya pada nilai kolom. Jika XML Anda mengandung teks buatan pengguna dan Anda akan membuka output di Excel atau Sheets, sel yang dimulai dengan =, +, -, atau @ diinterpretasikan sebagai formula. OWASP mendokumentasikan ini sebagai kelas serangan nyata, lakukan sanitasi sebelum berbagi ekspor konten buatan pengguna.
  7. Elemen anak berulang. Jika XML memiliki pembungkus <tags> dengan beberapa anak <tag>, output datar tidak dapat merepresentasikannya dengan bersih. Ratakan menjadi satu baris per tag (dengan kolom induk yang diulang) atau proses terlebih dahulu XML untuk membuat tag inline sebagai string yang dibatasi.

Pertanyaan yang Lebih Sering Diajukan

Apakah alat akan memvalidasi XML saya terhadap skema?

Tidak. Alat hanya memeriksa well-formedness, menggunakan DOMParser bawaan browser. Jika Anda memerlukan validasi XSD atau RELAX NG, gunakan alat khusus seperti xmllint, Saxon, atau validator XML Schema W3C, well-formedness sudah cukup untuk perataan yang aman ke CSV.

Seberapa besar XML saya bisa?

Sebesar yang dapat ditampung browser Anda. Tidak ada batas sisi server karena tidak ada server yang terlibat. Puluhan megabyte dikonversi dalam satu atau dua detik di perangkat modern. Jika Anda memiliki ratusan megabyte XML, pecah menjadi beberapa batch sebelum mengonversi; menjalankan seluruhnya melalui satu tab browser dapat mencapai batas memori.

Apakah alat menangani namespace XML?

Ya, elemen dengan namespace seperti <atom:link> dikenali dan awalan dipertahankan dalam nama kolom. Jika Anda tidak menginginkan awalan dalam header CSV, jalankan pencarian-dan-penggantian cepat pada output untuk menghapusnya.

Apakah XML saya diunggah ke mana pun?

Tidak. Semua parsing dan perataan terjadi di browser Anda melalui DOMParser bawaan. Konten textarea tidak pernah dikirimkan, dicatat, atau disimpan. Setelah tab ditutup, datanya hilang.

Apa perbedaan antara ini dan alat JSON-ke-CSV?

Tujuan yang sama (meratakan data hierarkis menjadi baris) tetapi format input yang berbeda. XML lebih verbose, memungkinkan atribut, memiliki namespace, dan menggunakan referensi entitas untuk karakter khusus. Konverter XML-ke-CSV menangani fitur-fitur tersebut secara khusus; konverter JSON-ke-CSV mengharapkan input array-of-object. Jika Anda memiliki JSON, gunakan alat itu; jika Anda memiliki XML, alat ini akan memberikan hasil yang lebih bersih.

Bisakah saya mendapatkan konversi terbalik (CSV ke XML)?

Tidak dari alat ini, tetapi kebalikannya umumnya lebih mudah, pilih nama elemen baris, bungkus setiap baris, dan ubah setiap kolom menjadi elemen anak. Skrip Python atau Node kecil dengan csv + xml.etree menangani ini dalam 20 baris. Atau gunakan alat data terstruktur seperti Power Query Excel, yang dapat mengekspor CSV kembali ke XML dengan skema yang dipilih.

Alat terkait

JSON ke CSV Konverter JSON ke YAML Konverter Penampil Spreadsheet Gratis