Ubah XML ke Excel
Ubah feed XML atau ekspor sistem menjadi spreadsheet. Elemen record yang berulang ditemukan otomatis, dan atribut menjadi kolom tersendiri.
Letakkan file di sini
.xml, .rss, .xhtml, .txt · hingga 300 MB
Pengaturan lainnyaSembunyikan pengaturan
Cara Ubah ke Excel
- 1
Letakkan file XML
Feed, katalog, dan ekspor sistem semuanya dibaca secara lokal. RSS, XML biasa, dan XHTML diterima.
- 2
Pastikan elemen record yang terdeteksi
Path yang paling sering berulang menjadi baris. Ganti jika file Anda menyimpan record di tempat yang tidak biasa.
- 3
Ubah dan unduh XLSX
Anda mendapat satu baris per record dengan header yang dibekukan, siap disaring dan diurutkan.
Menentukan apa yang menjadi baris
XML tidak mengenal konsep tabel, jadi pertanyaan pertama yang sesungguhnya adalah elemen mana yang merupakan record. Pohon dokumen ditelusuri, dan untuk setiap node dihitung jumlah elemen anak yang bernama sama. Path dengan pengulangan terbanyak menang, dan jika seri, path yang lebih dalam diutamakan karena lebih spesifik: rss.channel.item adalah jawaban yang lebih berguna daripada rss.channel. Heuristik ini hampir selalu tepat untuk feed dan katalog, tetapi tetap hanya heuristik. Karena itu path ditampilkan sebagai kolom isian yang bisa diedit, bukan keputusan tersembunyi. Ekspor 1C yang berisi Document dan TableRow yang keduanya berulang adalah contoh kasus ketika hanya Anda yang tahu mana yang dimaksud.
Atribut, namespace, dan elemen bersarang
Atribut membawa data sama seperti elemen, jadi id="7" menjadi kolom bernama @id, dan currency="EUR" yang bersarang menjadi sum.@currency. Anda bisa mengganti awalannya atau membuang semua atribut. Awalan namespace dibuang secara default sehingga dc:title masuk ke kolom bernama title, dan itulah yang diinginkan hampir semua orang saat membuka sheet. Matikan opsi itu, dan nama lengkap dengan awalannya tetap dipertahankan. Elemen bersarang diratakan menjadi kolom dengan nama bertitik sampai kedalaman yang Anda izinkan, dan apa pun yang lebih dalam disimpan sebagai JSON ringkas, bukan membuat sheet melebar ke samping tanpa kendali.
Deklarasi entitas ditolak, bukan diekspansi
File XML bisa mendeklarasikan entitasnya sendiri di dalam DOCTYPE, dan ekspansi entitas itulah cara serangan billion laughs menghabiskan memori dan cara XXE membaca file dari server. Tidak ada cara aman untuk mengekspansi entitas yang tidak tepercaya, dan tidak ada alasan kuat untuk mencobanya demi konversi spreadsheet. Jadi dokumen dengan deklarasi ENTITY ditolak sebelum penguraian dimulai, disertai pesan yang menjelaskan alasannya dengan tepat. Hapus DOCTYPE, dan bagian file lainnya akan dikonversi seperti biasa.
Diurai di sini, bukan di server
Decode, validasi, dan konversi semuanya berlangsung di dalam tab browser ini dengan parser yang ditulis khusus untuk keperluan ini. Tidak ada yang dikirim ke server, dan karena entitas eksternal tidak pernah diekspansi, tidak ada bagian file yang bisa menghubungi tempat lain.
Pertanyaan yang sering diajukan
Bagaimana elemen yang berulang dipilih?
Dengan menghitung elemen bersaudara yang bernama sama di seluruh dokumen dan mengambil path dengan jumlah terbanyak; jika dua path seri, yang lebih dalam diutamakan. Path yang terpilih ditampilkan dan bisa diganti dengan path apa pun yang Anda ketik.
Ke mana atribut masuk?
Ke kolom tersendiri, dengan awalan @ secara default: @id untuk atribut pada record dan sum.@currency untuk atribut pada elemen bersarang. Anda bisa mengganti awalannya atau mengabaikan semua atribut.
Apa yang terjadi pada elemen bersarang?
Elemen itu menjadi kolom dengan nama bertitik seperti order.customer.city, sampai batas kedalaman yang Anda tetapkan. Apa pun yang lebih dalam ditulis sebagai string JSON ringkas di satu sel, bukan dipecah menjadi lebih banyak kolom.
Bagaimana dengan namespace?
Awalan seperti dc: dihapus secara default, jadi dc:title menjadi kolom bernama title. Jika di file Anda dua namespace memang memakai nama lokal yang sama, matikan penghapusan awalan agar keduanya tetap terpisah.
Apakah bisa untuk RSS?
Bisa, dan inilah kasus yang paling baik ditangani deteksi: rss.channel.item ditemukan otomatis, sehingga setiap entri feed menjadi satu baris dengan title, link, dan pubDate sebagai kolom.
Berapa batas jumlah baris?
1.048.576 baris, batas dari format XLSX itu sendiri. Feed yang lebih besar ditolak dengan tautan ke alat XML ke CSV, yang tidak punya batas seperti itu.
Apakah file saya dikirim ke server?
Tidak. Decode, penguraian, dan konversi berlangsung di dalam browser Anda, dan entitas yang dideklarasikan langsung ditolak, bukan diekspansi, jadi tidak ada isi dokumen yang bisa memicu permintaan jaringan.