XML ke CSV

Berjalan di perangkat Anda · File Anda tidak pernah meninggalkan perangkat.

Taruh file XML berisi rekaman berulang (<records><record>…</record>…</records>, feed RSS, ekspor dari database) dan dapatkan CSV dengan satu baris per rekaman. Dokumen dibaca parser XML browser, lalu daftar elemen berulang yang terpanjang dicari otomatis, apa pun pembungkusnya (atribut pada pembungkus, atau judul dan tautan milik feed itu sendiri di samping item-itemnya), dan baris hasil menyebutkan daftar mana yang dipakai.

Setiap rekaman diratakan dengan cara yang sama seperti alat JSON ke CSV: elemen bersarang menjadi kolom bertitik (alamat.kota), atribut menjadi kolom berawalan @ (@id), elemen dalam berulang yang punya anak sendiri mendapat kolom bernomor (line.0.sku), elemen teks berulang disambung dengan titik koma (a;b), dan baris header adalah gabungan semua kolom yang ditemukan. Nilai ditulis persis seperti di XML. Kolom berisi koma, tanda kutip, atau baris baru diberi tanda kutip sesuai RFC 4180.

CSV-nya UTF-8 dengan BOM opsional untuk Excel, pemisahnya Anda yang pilih, dan Anda bisa melihat 200 baris pertama sebelum mengunduh. Tidak ada yang diunggah.

Cara XML ke CSV

  1. Taruh file XML, atau tempel XML ke kotak.
  2. Pilih pemisah keluaran dan apakah perlu BOM untuk Excel.
  3. Klik «Konversi ke CSV» dan periksa pratinjaunya.
  4. Unduh file .csv.

Format yang didukung dan batasan

Masukan
XML (.xml), file atau teks yang ditempel, dibaca dalam encoding yang dideklarasikannya
Keluaran
CSV, RFC 4180, UTF-8, BOM opsional
Baris
Daftar elemen berulang yang terpanjang
Bersarang
Elemen anak → kolom bertitik; atribut → kolom @
Berjalan di
Di browser – tanpa unggah

Tidak cocok untuk: Dokumen dengan beberapa daftar rekaman: hanya yang terpanjang yang jadi baris; untuk daftar lain, konversi ke JSON, salin daftar itu, dan konversi dengan alat JSON ke CSV.

Bagaimana baris ditemukan

Barisnya adalah daftar elemen berulang terpanjang di mana pun di bawah root, apa pun pembungkusnya. <records count="2"><record>…</record><record>…</record></records> memberi satu baris per <record>, walaupun pembungkusnya punya atribut. Feed RSS memberi satu baris per <item>, dengan kolom seperti title, link, dan pubDate, walaupun title dan link milik channel itu sendiri berada di samping item-itemnya. Baris di bawah hasil menyebutkan daftar yang dipakai, misalnya rss.channel.item.

Nilai di samping daftar itu, seperti judul feed itu sendiri, bukan bagian dari rekaman mana pun dan dilewati. Kalau sebuah dokumen berisi beberapa daftar rekaman, hanya yang terpanjang yang menjadi baris. Untuk daftar lain, konversi file dengan /xml-to-json, salin daftar itu dari [ sampai ], tempel ke /json-to-csv, lalu konversi.

File yang hanya berisi satu rekaman

Kalau tidak ada elemen berulang, satu-satunya rekaman menjadi satu baris itu, dan kolomnya adalah nama-nama field-nya sendiri: <records><record><name>Ali</name><city>Cairo</city></record></records> memberi kolom name dan city. Jadi file yang kadang berisi satu rekaman dan kadang banyak tetap mempertahankan header yang sama, dan itu penting ketika program lain membaca kolomnya menurut nama.

Bagaimana nilai ditulis

Nilai ditulis persis seperti di XML: 1.50 tetap 1.50, TRUE tetap TRUE, dan elemen berisi NULL memberi teks NULL, sedangkan elemen kosong memberi sel kosong. 007 mempertahankan nol-nolnya, dan tanggal tetap seperti ditulis. Nilai yang diawali =, +, - atau @ diberi apostrof di depannya, seperti di /json-to-csv, supaya spreadsheet tidak menjalankannya sebagai rumus.

Elemen anak berulang yang hanya berisi teks disambung dengan titik koma dalam satu sel, jadi dua elemen <tag> memberi a;b. Elemen anak berulang yang punya anak sendiri mendapat kolom bernomor, seperti line.0.sku dan line.1.sku. Awalan namespace tetap ada di nama kolom, seperti soap:Body.price. Teks yang berada di samping elemen anak masuk ke kolom #text tanpa posisinya di antara elemen-elemen itu. File dibaca dalam encoding yang dideklarasikan baris pertamanya.

Pertanyaan umum

Apakah file saya diunggah ke server?
Tidak. Konversi berjalan sepenuhnya di browser, memakai tenaga perangkat Anda sendiri. File tidak pernah meninggalkan HP atau laptop Anda. Setelah sebuah alat dipakai sekali, alat itu tetap bekerja tanpa internet: alat video, pengenal teks, dan penghapus latar mengunduh mesinnya dari situs ini pada pemakaian pertama, lalu browser menyimpannya.
Bagaimana alat ini tahu elemen mana yang jadi baris?
Alat ini mengambil daftar elemen berulang terpanjang di bawah root, jadi <records><record>…</record></records> memberi satu baris per <record>, dan feed RSS satu baris per <item>. Nilai di samping daftar itu, seperti judul feed itu sendiri, dilewati. Kalau tidak ada elemen berulang, satu-satunya rekaman menjadi satu baris, dengan nama-nama field-nya sendiri sebagai kolom.
Atribut masuk ke mana?
Ke kolom berawalan @, jadi <record id="3"> menghasilkan kolom bernama @id. Teks di samping elemen anak masuk ke kolom #text.
Excel bisa membukanya dengan benar?
Bisa. Sakelar „Tambahkan BOM untuk Excel“ (menyala secara bawaan) menulis penanda yang dibutuhkan Excel untuk mengenali UTF-8, jadi huruf beraksen dan simbol tampil benar.

Alat terkait

Lainnya di Lembar kerja dan data

Halaman ini dalam bahasa lain: English · العربية · Deutsch · Français · Español · Русский · Português · 中文 · हिन्दी · Türkçe · עברית · فارسی · اردو · বাংলা