Apakah pemformatan XML?
XML (Extensible Markup Language) ialah format teks yang distandardkan oleh W3C untuk dokumen berstruktur dan pertukaran data. Pemformatan — juga dipanggil cetak-cantik atau pengindahan — mengambil sumber XML yang berbentuk baik dan menyeindentkannya semula supaya setiap elemen, atribut, ulasan, arahan pemprosesan, dan bahagian CDATA mudah diimbas. Pokok dokumen yang dihurai dikekalkan dengan tepat; hanya ruang putih antara elemen yang berubah.
Bagaimana pemformatan XML berfungsi?
Input anda diproses sepenuhnya dalam pelayar anda menggunakan API DOMParser dan XMLSerializer asli ditambah pengindent rekursif tersuai. Langkah peringkat tinggi adalah:
- Input anda dibaca secara verbatim dari kawasan teks — setiap bait yang anda tampalkan disimpan secara setempat dalam ingatan.
- Pelayar menghurainya dengan
new DOMParser().parseFromString(text, 'application/xml'). Jika input tidak berbentuk baik, penghurai membenamkan nod<parsererror>yang muatan teksnya membawa petua baris dan lajur enjin — ia dipaparkan secara verbatim dalam jalur ralat. - Pada huraian yang berjaya, pengindent tersuai menelusuri pokok DOM secara mendalam-dahulu, memancarkan setiap elemen, set atribut, bahagian CDATA, ulasan, dan arahan pemprosesan pada barisnya sendiri pada kedalaman semasa. Tag void menutup-diri dihormati apabila pilihan dihidupkan.
- Mod minikatkan membalikkan saluran paip:
XMLSerializer().serializeToString(doc)memancarkan bentuk satu baris, kemudian regex berpenjaga membuang ruang putih antara elemen tanpa menyentuh teks dalam blok CDATA atau nod teks bukan-ruang-putih. - Output ditulis ke kawasan teks baca-sahaja, jalur ralat dibersihkan, dan butang Muat Turun membungkus hasilnya sebagai fail
.xmlyang boleh anda hantar atau lampirkan ke tiket.
Mengapa mencetak-cantik XML dengan alat ini?
- Privasi: setiap lulus hurai, format, dan minikatkan berlaku dalam pelayar anda. XML tidak pernah sampai ke pelayan kami — tiada muat naik, tiada telemetri, tiada akaun.
- Ralat tepat: apabila input tidak berbentuk baik, penghurai menampilkan baris dan lajur tepat yang dilaporkan oleh enjin pelayar itu sendiri, bukan tekaan sintetik — nombor yang sama yang anda lihat dalam DevTools.
- Perjalanan pergi balik yang setia: format kemudian minikatkan dan anda mendapat kembali padanan bait dokumen asal anda (modulo pilihan deklarasi XML) — pemformatan tidak pernah menormalkan semula ruang nama atau menulis semula susunan atribut.
- Pantas: DOMParser tulen ditambah pengindent ~60-baris mengendalikan sampul SOAP berbilang megabait dan bahagian OOXML dengan segera, tanpa pustaka luaran untuk dimuat turun.
Apakah aplikasi biasa pemformatan XML?
Mencetak-cantik XML muncul dalam penerbitan web, integrasi perusahaan, dan pengarkiban data:
- Pemeriksaan suapan RSS / Atom: tampal badan suapan podcast atau berita untuk mengesahkan metadata saluran, susunan item, dan awalan ruang nama sebelum diterbitkan.
- Penyahpepijatan SOAP: format sampul yang disalin dari Wireshark atau log klien SOAP supaya bahagian Header, Body, dan Fault kelihatan sekilas.
- Pengauditan peta laman: seindentkan semula sitemap.xml yang diperoleh dari pesaing atau tapak pementasan anda sendiri untuk mengira entri dan mengesahkan alternatif hreflang setiap URL.
Bagaimana rupa contoh pemformatan XML?
Menampal 3-elemen <feed><entry><title>Hello</title></entry></feed> dan menekan Format dengan pilihan inden 2-ruang menghasilkan dokumen empat baris dengan setiap elemen pada barisnya sendiri, diinden mengikut kedalaman. Beralih kepada Minikatkan pada input yang sama meruntuhkannya kembali kepada rentetan bait asal. Perjalanan pergi balik adalah tanpa kerugian untuk mana-mana dokumen yang berbentuk baik.
Adakah ini berjalan luar talian?
Ya. Saluran paip format dan minikatkan adalah DOMParser + XMLSerializer tulen ditambah pengindent rekursif kecil, semuanya berjalan dalam tab pelayar. Tiada apa yang dimuat naik, tiada proksi pekerja perkhidmatan pada input anda, dan halaman membuat sifar permintaan rangkaian untuk langkah format itu sendiri. Satu-satunya trafik keluar ialah aset muatan halaman piawai (CSS, fon, analitik) — XML anda tidak pernah sampai ke Ultim8Soft.
Adakah pemformatan mengubah dokumen?
Tiada perubahan semantik. Pemformatan hanya menulis semula ruang putih antara elemen. Nama elemen, nilai atribut, kandungan teks, muatan CDATA, ulasan, dan arahan pemprosesan dikekalkan bait demi bait. Deklarasi ruang nama dan awalan dikekalkan tepat seperti input menulisnya — pemformat tidak menormalkan semula atau menyusun semula atribut. Output menghurai kepada pokok DOM yang sama seperti input, modulo togol deklarasi XML pilihan.
Bagaimana CDATA / ulasan / arahan pemprosesan dikendalikan?
Setiap satunya dimancarkan secara verbatim pada barisnya sendiri pada kedalaman inden semasa. Muatan CDATA dibungkus dalam <![CDATA[…]]> tanpa seindent semula di dalam — spesifikasi mengatakan kandungan CDATA adalah legap, jadi pemformat tidak pernah menyentuhnya. Ulasan menggunakan <!-- … -->; arahan pemprosesan menggunakan <?target data?>. Ketiga-tiganya selamat dalam perjalanan pergi balik format → minikatkan → format dengan kandungan mereka utuh.
Apakah perbezaan antara memformat dan meminiatkan XML?
Pemformatan mengembangkan ruang putih supaya manusia boleh membaca pokok dokumen; peminiatkan membuangnya kembali untuk pengangkutan dan penyimpanan. Kedua-duanya beroperasi pada DOM yang dihurai, bukan rentetan bait mentah, jadi perjalanan pergi balik format → minikatkan pada dokumen yang berbentuk baik menghasilkan padanan bait bentuk yang diminiatkan asal. Gunakan arah format apabila anda perlu membaca atau men-diff muatan XML, dan arah minikatkan apabila anda mahu menghantarnya melalui get cara API yang diukur atau membenamkannya dalam dokumen lain.
Pemformat XML ini menggunakan penghurai yang sama yang digunakan oleh pelayar anda untuk respons AJAX XHR dan dokumen SVG, jadi mana-mana XML yang berbentuk baik — RSS, Atom, SOAP, peta laman, OOXML, SVG — berperjalanan pergi balik dengan bersih. Tampal mana-mana XML di atas, salin output, atau muat turunnya sebagai .xml.