Ubah XML ke Excel
Ubah ekspor XML, feed, dan file data menjadi sheet Excel yang terformat — record berulang dideteksi untuk Anda, atribut dan elemen bersarang disusun sebagai kolom, dan tidak ada yang disimpan.
- Tidak pernah disimpan
- Tanpa antre, tanpa menunggu
- Tanpa daftar, tanpa watermark
Cara kerjanya
Tambahkan XML
Letakkan file .xml atau tempel XML-nya. File XML Spreadsheet 2003 dari Excel juga bisa.
Pilih record-nya
Elemen yang berulang — product, item, row — dipilihkan untuk Anda, dengan setiap tabel lain dalam file tercantum dan pratinjau langsung.
Unduh
File .xlsx dengan angka dan tanggal bertipe per kolom, plus baris header tebal yang bisa difilter.
Menemukan baris di dalam struktur pohon
XML tidak mengenal konsep tabel, jadi hal pertama yang harus dilakukan adalah mengenali elemen mana yang merupakan record. Petunjuk yang andal adalah pengulangan: elemen induk yang berisi banyak anak dengan nama yang sama hampir selalu berarti daftar record, dan elemen anak serta atribut dari anak-anak itu menjadi kolomnya. Cara ini berhasil pada sebagian besar XML data — ekspor, feed, respons API, dump konfigurasi — karena semuanya dibangun dengan cara yang sama.
Atribut dan elemen anak sama-sama dijadikan kolom, dan itu perlu karena XML menawarkan dua cara untuk menyatakan hal yang sama, dan tiap sistem memilih secara berbeda. Satu ekspor menulis id="42" sebagai atribut; ekspor lain menulis <id>42</id> sebagai elemen; yang ketiga memakai keduanya dalam dokumen yang sama. Grid tidak peduli pada perbedaan itu, begitu pula Anda seharusnya, jadi keduanya tiba sebagai kolom, dengan atribut diberi tanda agar nama yang muncul dalam kedua bentuk tidak bertabrakan.
Susunan bersarang yang lebih dari satu tingkat diratakan dengan menggabungkan nama-nama elemen, sama seperti JSON bersarang. Jika sebuah record berisi anak yang berulang — tiga baris pesanan di dalam satu pesanan — grid tidak bisa menampilkannya sebagai baris tanpa menggandakan semua isi di sekitarnya, jadi nilai-nilai yang berulang itu disimpan di dalam selnya. Namespace dihapus dari nama kolom, karena kolom bernama ns2:customerName tidak membantu siapa pun di spreadsheet, sementara nilainya sendiri tidak diubah.
XML berisi tulisan tidak punya tabel untuk ditemukan dan hasil konversinya buruk. Halaman XHTML, artikel DocBook, bab ePub, atau gambar SVG adalah dokumen, bukan dataset: strukturnya memang bersarang dan tidak beraturan, dan tidak ada record berulang yang bisa dijadikan baris. Konversi tetap akan menghasilkan sesuatu, tetapi hasil itu tidak akan berguna. Halaman ini dibuat untuk XML data, dan memahami perbedaannya menghemat lebih banyak waktu daripada penyetelan apa pun.
Jika Anda butuh hal lain
Jika Anda sudah tahu strukturnya, ekstrak secara sengaja alih-alih menebaknya. xmlstarlet sel -t -m "//order" -v "@id" -o "," -v "customer" -n data.xml mengambil persis field yang Anda inginkan dengan ekspresi XPath, dan xq melakukan hal yang sama dengan sintaks ala jq. Itulah bedanya konversi yang kebetulan berhasil dengan konversi yang bisa Anda masukkan ke dalam pipeline.
Untuk file yang sangat besar, pendekatan di sini sama sekali tidak cocok: dokumen diurai utuh ke dalam memori, dan XML yang diurai sebagai pohon biasanya memakan beberapa kali ukuran file-nya. Parser streaming — iterparse di Python, atau SAX di bahasa apa pun — menelusuri dokumen berukuran beberapa gigabyte dengan memori yang tetap, dan menjadi satu-satunya pendekatan realistis untuk file di atas beberapa ratus megabyte.
Pertanyaan yang sering diajukan
Bagaimana alat ini tahu bagian XML mana yang merupakan tabel?
Record adalah elemen yang berulang di bawah induk yang sama — setiap <book> dalam <catalog>, setiap <item> dalam channel RSS. Setiap kelompok dinilai dari jumlah record dan field-nya, yang terbaik dipilih, dan kelompok lainnya tetap bisa dipilih dengan satu klik.
Apa yang terjadi pada atribut dan elemen bersarang?
Masing-masing menjadi kolom yang dinamai sesuai path-nya: atribut id menjadi id, <author><name> menjadi author/name, dan <price currency="EUR"> menghasilkan price dan price/@currency. Field yang berulang di dalam satu record digabung ke dalam satu sel atau disebar ke beberapa kolom bernomor.
Bisakah alat ini membuka file Excel XML Spreadsheet 2003?
Bisa. File tersebut dikenali dan dikonversi sheet demi sheet, dengan angka, tanggal, dan teksnya tetap utuh.
Bagaimana jika file berisi beberapa tabel — pesanan beserta item-itemnya?
Setiap kelompok berulang ditawarkan secara terpisah. Tabel bersarang, seperti item di dalam setiap pesanan, membawa kolom yang menunjukkan record induknya sehingga kedua sheet bisa dicocokkan.
Apakah file saya disimpan di suatu tempat?
Tidak. XML diurai dan workbook ditulis di sini, tanpa ada yang disimpan.
Amankah membuka XML dari sumber yang tidak dikenal?
Aman. File dibaca oleh parser XML bawaan browser Anda, yang tidak pernah memuat entitas eksternal atau DTD dan tidak bisa menjalankan apa pun yang ada di dalam file.
Perlu diketahui: Dokumen yang berisi tulisan, bukan data — halaman XHTML, artikel DocBook — tidak punya tabel untuk ditemukan dan hasil konversinya buruk. File di atas sekitar 100 MB bisa melebihi memori browser Anda.
Pasang alat ini di situs Anda
Gratis untuk blog, halaman kelas, atau artikel bantuan apa pun. Tempel satu potong kode dan pengunjung Anda bisa langsung memakainya di halaman Anda.
Alat Spreadsheet lainnya
Excel ke XML
Baris menjadi XML yang bersih dan valid
JSON ke CSV
JSON bersarang diratakan menjadi kolom yang rapi
CSV ke Excel
CSV ke XLSX dengan angka dan tanggal yang sesungguhnya
CSV ke JSON
CSV ke JSON bertipe dan bersarang
Excel ke CSV
Sheet apa pun ke CSV, dengan encoding yang Anda perlukan
ODS ke XLSX
Spreadsheet LibreOffice sebagai workbook Excel