XML Formatter
Beautify, minify, dan validasi XML langsung di browser — tidak ada upload. Merapikan XML yang berantakan, melaporkan error well-formedness dengan baris/kolom. Gratis, privat, tanpa pendaftaran.
Apa Itu XML Formatter dan Mengapa Menggunakannya?
XML (Extensible Markup Language) adalah format berbasis teks untuk data terstruktur, digunakan di mana-mana mulai dari layanan web dan file konfigurasi hingga feed RSS, API SOAP, dokumen perkantoran (DOCX, XLSX), grafis SVG, dan file layout Android. Tidak seperti JSON, XML mendukung komentar, namespace, konten campuran (teks dan elemen yang berselang-seling), dan deklarasi tipe dokumen — menjadikannya format pilihan untuk integrasi enterprise, pertukaran dokumen, dan di mana pun data terstruktur perlu berdampingan dengan markup yang mudah dibaca manusia.
XML di dunia nyata sering kali berindentasi buruk atau sepenuhnya diminifikasi — respons API tiba dalam satu baris, file konfigurasi mengumpulkan indentasi yang tidak konsisten, dan XML yang dihasilkan dari serializer tidak menambahkan spasi sama sekali. Sebuah XML formatter mengambil input yang berantakan dan mengindentasinya kembali menjadi struktur hierarkis yang bersih di mana setiap level nesting terlihat jelas secara visual. Ini penting untuk tinjauan kode, debugging, dokumentasi, dan memahami skema XML yang tidak familiar.
**Apa yang dilakukan alat ini berbeda dari editor teks biasa:**
**1. Validasi well-formedness dengan lokasi error yang tepat.** Formatter menggunakan DOMParser browser (mesin yang sama yang mem-parse HTML dan SVG) untuk mem-parse XML. Jika dokumen tidak well-formed — tag yang tidak cocok, elemen yang tidak ditutup, karakter yang tidak di-escape, atau beberapa elemen root — parser melaporkan nomor baris dan kolom tepat tempat ia gagal. Ini jauh lebih cepat daripada membaca XML mentah mencari tempat tag yang tidak sengaja dibiarkan terbuka.
**2. Pemformatan lossless.** Formatter mempertahankan komentar, instruksi pemrosesan, bagian CDATA, deklarasi namespace, urutan atribut, dan semua konten teks dengan tepat. Hanya menyesuaikan spasi di antara tag elemen. Anda dapat dengan aman memformat XML apa pun yang Anda pedulikan — tidak ada yang bermakna akan berubah.
**3. Minifikasi untuk penggunaan produksi.** Minifier menghapus semua spasi antar-elemen yang tidak signifikan, menghasilkan representasi XML valid terkecil. Ini adalah langkah pra-pemrosesan yang tepat sebelum menyimpan XML di kolom database, memasukkannya sebagai string ke dalam JSON, atau mengirimkannya melalui saluran yang dihitung byte-nya.
**4. Privasi 100% berbasis browser.** XML kesehatan (HL7, FHIR), data keuangan, payload SOAP dengan kredensial, dan file konfigurasi internal semuanya adalah payload XML umum yang berisi data sensitif. Alat ini tidak pernah mengupload apa pun — semua pemrosesan berjalan di JavaScript engine browser Anda. Lihat alat pendamping kami jika Anda perlu mengonversi, bukan memformat: Konverter XML ke JSON untuk mengonversi XML ke JSON, dan Konverter JSON ke XML untuk arah sebaliknya.
<!-- Minified XML input -->
<?xml version="1.0" encoding="UTF-8"?><catalog><product id="p01"><name>Wireless Headphones</name><price currency="USD">79.99</price></product></catalog>
<!-- After formatting with 2-space indent -->
<?xml version="1.0" encoding="UTF-8"?>
<catalog>
<product id="p01">
<name>Wireless Headphones</name>
<price currency="USD">79.99</price>
</product>
</catalog> Fitur Utama
Beautify dengan Indent 2 atau 4 Spasi
Mengindentasi ulang XML menjadi hierarki yang bersih dan mudah dibaca. Pilih indentasi 2 spasi (paling umum untuk layanan web, RSS, dan file konfigurasi) atau 4 spasi (umum dalam skema XML enterprise) sebelum pemformatan.
Minify — Hapus Spasi Tidak Signifikan
Menghapus semua spasi di antara tag elemen tanpa menyentuh konten teks, menghasilkan XML valid terkecil. Ideal untuk penyimpanan, transmisi, atau penyematan sebagai string dalam JSON atau format lainnya.
Validasi Well-Formedness dengan Error Baris/Kolom
Menggunakan DOMParser bawaan browser untuk memvalidasi struktur XML. Melaporkan nomor baris dan kolom tepat dari error well-formedness pertama — tag yang tidak cocok, elemen yang tidak ditutup, karakter yang tidak di-escape — untuk debugging cepat.
Lossless: Mempertahankan Komentar, Namespace, dan Atribut
Komentar, instruksi pemrosesan, bagian CDATA, deklarasi namespace, dan urutan atribut semuanya dipertahankan persis. Hanya spasi yang tidak signifikan di antara tag yang dimodifikasi — konten Anda tidak pernah diubah.
100% Berbasis Browser — Tanpa Upload, Tanpa Server
Semua pemrosesan berjalan secara lokal di browser Anda. Payload XML yang berisi kredensial, data kesehatan, catatan keuangan, atau konfigurasi internal tidak pernah ditransmisikan ke server mana pun dan tidak pernah dicatat.
Bekerja dengan SOAP, RSS, SVG, XHTML, dan Android XML
Menangani aplikasi XML well-formed apa pun: SOAP envelope dengan header WS-Security, feed RSS/Atom, file SVG, dokumen XHTML, layout XML Android, Maven POM, dan file build Maven/Ant.
Contoh
XML Berantakan / Minified
<?xml version="1.0" encoding="UTF-8"?><catalog><product id="p01" category="electronics"><name>Wireless Headphones</name><price currency="USD">79.99</price><stock>142</stock><tags><tag>audio</tag><tag>bluetooth</tag></tags></product><product id="p02" category="books"><name>Learning XML</name><price currency="USD">29.99</price><stock>55</stock></product></catalog>
Katalog produk XML satu baris yang padat. Klik Format untuk mengindentasinya menjadi pohon yang mudah dibaca dengan indentasi 2 spasi. Hierarki elemen, atribut, dan konten teks semuanya dipertahankan sepenuhnya — pemformatan murni bersifat kosmetik.
Cuplikan RSS Feed
<rss version="2.0"><channel><title>Go Tools Blog</title><link>https://go-tools.org/blog</link><description>Developer tools, tips and tutorials</description><item><title>Understanding XML Namespaces</title><link>https://go-tools.org/blog/xml-namespaces-guide</link><pubDate>Thu, 29 May 2026 00:00:00 GMT</pubDate><description>A deep dive into XML namespace declarations, prefixes, and scope rules with practical examples.</description></item><item><title>XML vs JSON: When to Use Each</title><link>https://go-tools.org/blog/xml-vs-json</link><pubDate>Mon, 25 May 2026 00:00:00 GMT</pubDate></item></channel></rss>
Feed RSS 2.0 dua item yang dikompresi menjadi satu baris. Setelah diformat, metadata channel dan setiap elemen item tampak terindentasi dengan jelas, memudahkan pemeriksaan struktur feed, penambahan item baru, atau perbandingan dengan persyaratan validator feed.
SOAP Envelope
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soap:Header><wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"><wsse:UsernameToken><wsse:Username>api-client</wsse:Username><wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-ext-1.0.xsd#PasswordText">s3cr3t</wsse:Password></wsse:UsernameToken></wsse:Security></soap:Header><soap:Body><GetOrderRequest xmlns="http://example.com/orders"><OrderId>ORD-20260529-001</OrderId><IncludeLineItems>true</IncludeLineItems></GetOrderRequest></soap:Body></soap:Envelope>
SOAP 1.1 envelope dengan header WS-Security dan body GetOrder, menggunakan tiga prefiks namespace (soap:, wsse:, dan default). Pemformatan membuat pemisahan header/body dan deklarasi namespace langsung terlihat jelas — penting untuk men-debug integrasi SOAP dan membaca payload yang dihasilkan WSDL.
Cara Menggunakan
- 1
Tempel XML Anda
Masukkan atau tempel XML ke kolom input di atas. Anda juga dapat klik 'Muat contoh' untuk mencoba sampel (XML katalog produk yang diminifikasi yang diformat dengan baik).
- 2
Pilih Aksi
Klik Format untuk merapikan dengan indentasi, Minify untuk menghapus spasi, atau Validate untuk memeriksa well-formedness. Pilih 2 atau 4 spasi untuk ukuran indent sebelum pemformatan.
- 3
Salin Output
XML yang diproses muncul di panel output. Klik Copy untuk mengambilnya ke clipboard. Jika Validate menemukan error, spanduk error menampilkan nomor baris dan kolom yang tepat.
Kesalahan XML Umum
Tag yang Tidak Cocok
Nama tag XML peka huruf besar/kecil dan harus cocok persis.
<products>
<Item>
<name>Widget</name>
</item>
</products> <products>
<item>
<name>Widget</name>
</item>
</products> Ampersand atau Tanda Kurang-Dari yang Tidak Di-escape
Karakter & dan < adalah karakter khusus dalam XML dan harus di-escape di luar bagian CDATA. & tanpa escape menyebabkan error parser bahkan dalam nilai atribut. Gunakan & untuk & dan < untuk <. Tanda lebih-dari > sebaiknya di-escape sebagai > dalam konten teks, meskipun parser lebih toleran terhadapnya.
<query>price > 10 & stock > 0</query>
<query>price > 10 & stock > 0</query>
Atribut Tanpa Kutip atau Dikutip Tidak Benar
Semua nilai atribut XML harus diapit dalam tanda kutip tunggal atau ganda. Nilai atribut tanpa kutip valid di HTML5 tetapi merupakan error well-formedness dalam XML. Juga, nilai yang mengandung tanda kutip ganda harus menggunakan tanda kutip tunggal sebagai pembatas (atau escape kutipan sebagai ").
<product id=p01 label="It's a "widget"">
<product id="p01" label="It's a "widget"">
Beberapa Elemen Root
Dokumen XML harus memiliki tepat satu elemen root yang berisi semua elemen lainnya. Kesalahan umum saat menyatukan fragmen XML adalah berakhir dengan dua atau lebih elemen tingkat atas berdampingan, yang bukan XML valid (meskipun umum dalam HTML). Bungkus semua elemen saudara dalam satu kontainer root.
<user><name>Alice</name></user> <user><name>Bob</name></user>
<users> <user><name>Alice</name></user> <user><name>Bob</name></user> </users>
Ketidaksesuaian Encoding pada Deklarasi XML
Jika file XML Anda disimpan dalam UTF-16 atau encoding non-UTF-8 lainnya tetapi deklarasi menyatakan encoding="UTF-8" (atau tidak ada, yang default ke UTF-8), beberapa parser akan menolaknya atau menghasilkan karakter yang rusak. Saat menempel ke alat berbasis browser, browser menangani encoding secara otomatis. Untuk file di disk, pastikan atribut encoding cocok dengan encoding file aktual.
<?xml version="1.0" encoding="UTF-8"?> <!-- File is actually saved as UTF-16 -->
<?xml version="1.0" encoding="UTF-16"?> <!-- File saved as UTF-16, declaration matches -->
Bagian CDATA Tidak Ditutup dengan Benar
Bagian CDATA dimulai dengan . Jika urutan penutup ]]> hilang atau salah ketik, parser memperlakukan semua yang mengikuti sebagai bagian dari bagian CDATA sampai menemukan ]]> lain atau mencapai akhir dokumen. Ini biasanya bermanifestasi sebagai error 'unexpected end of document'.
<script><![CDATA[
if (a < b && b > c) { return true; }
<!-- ]]> is missing --> <script><![CDATA[
if (a < b && b > c) { return true; }
]]></script> Kasus Penggunaan Umum
- Men-debug Payload SOAP / Web Service
- Respons SOAP dari API enterprise dan layanan web lama tiba sebagai string XML satu baris. Tempel payload mentah ke formatter untuk langsung melihat struktur envelope, header, dan body — memudahkan menemukan field yang Anda butuhkan atau menemukan ketidaksesuaian namespace. Lihat juga: Konverter XML ke JSON jika Anda perlu memproses payload lebih lanjut dalam JavaScript.
- Memvalidasi File Konfigurasi dan Deskriptor Deployment
- File Maven POM, konteks aplikasi Spring XML, server.xml Tomcat, file Android Manifest, dan banyak file konfigurasi Java/enterprise lainnya adalah XML. Jalankan melalui Validate sebelum melakukan commit untuk mendeteksi tag yang tidak cocok atau masalah encoding yang sebaliknya hanya akan muncul saat waktu build atau deploy.
- Memformat Output Feed RSS dan Atom
- Feed RSS 2.0 dan Atom 1.0 adalah XML. Saat mengembangkan generator feed atau men-debug masalah kompatibilitas feed reader, format XML feed mentah untuk memeriksa metadata channel, struktur item, dan deklarasi namespace yang diperlukan secara berdampingan.
- Membaca dan Mengedit File SVG
- File SVG yang diekspor dari Figma, Illustrator, atau Sketch adalah XML valid tetapi sering diminifikasi atau berisi indentasi berlebihan dari eksporter. Format SVG untuk mendapatkan pohon elemen yang bersih dan mudah dinavigasi sebelum membuat pengeditan manual pada path, grup, atau atribut gaya.
- Mempersiapkan XML untuk Penyimpanan atau Transmisi
- Saat menyimpan XML di kolom database, mengirimkannya sebagai field string JSON dalam permintaan API, atau memasukkannya ke dalam antrean pesan, gunakan Minify terlebih dahulu untuk menghapus spasi yang tidak diperlukan. Ini mengurangi ukuran payload dan menghindari masalah dengan parser JSON yang mungkin tersandung pada karakter kontrol yang tidak di-escape dalam string XML berindentasi besar.
- Mengonversi XML ke JSON
- Jika Anda perlu mengonversi XML yang telah diformat ke JSON untuk digunakan dalam aplikasi JavaScript atau REST API, gunakan Konverter XML ke JSON kami. Untuk arah sebaliknya — membangun XML dari struktur JSON — gunakan Konverter JSON ke XML.
Detail Teknis
- Browser DOMParser untuk Parsing XML
- Parsing XML menggunakan DOMParser bawaan browser dengan tipe MIME 'text/xml'. Ini adalah mesin yang sama yang menggerakkan rendering SVG dan XHTML di browser — sepenuhnya sesuai XML 1.0 dan melaporkan error well-formedness dengan informasi baris dan kolom. Ketika dokumen tidak well-formed, DOMParser mengembalikan dokumen parsererror yang berisi pesan error dan posisi, yang diekstrak dan ditampilkan oleh alat ini.
- Serialisasi Pohon DOM untuk Pemformatan
- Pemformatan bekerja dengan mem-parse XML menjadi pohon DOM dan kemudian menelusuri pohon secara rekursif untuk menghasilkan output berindentasi. Pendekatan ini mempertahankan struktur semantis dokumen: nesting elemen, konten teks, atribut, bagian CDATA, instruksi pemrosesan, dan komentar semuanya diserialisasi kembali persis seperti yang di-parse. Hanya node teks yang hanya-spasi antar-elemen yang dibuang — node teks yang mengandung karakter non-spasi selalu dipertahankan.
- Minifikasi melalui Penghapusan Node Teks Hanya-Spasi
- Minifikasi menelusuri pohon DOM yang sama dan menghapus node teks yang kontennya sepenuhnya spasi (spasi, tab, baris baru). Node teks dengan konten campuran atau non-spasi — data aktual di antara tag — tidak pernah dihapus. Atribut dan nilainya diserialisasi tanpa spasi tambahan. Hasilnya adalah representasi XML well-formed paling ringkas dari dokumen asli.
- 100% Berbasis Browser — Tanpa Upload, Tanpa Server
- Semua pemrosesan berjalan di runtime JavaScript browser Anda. Tidak ada data yang ditransmisikan ke server mana pun kapan pun. Ini sangat penting untuk payload XML yang sering mengandung konten sensitif: token SOAP WS-Security, data pasien HL7, konfigurasi layanan internal, dan format pesan keuangan (FIX, SWIFT ISO 20022). Alat ini aman untuk digunakan dengan XML apa pun yang tidak ingin Anda tempel ke layanan publik.
Praktik Terbaik
- Validasi Sebelum Memformat, Format Sebelum Melakukan Commit
- Validasi XML Anda terlebih dahulu untuk memastikannya well-formed sebelum memformat ulang — formatter akan menghasilkan output yang tidak benar secara diam-diam jika input bukan XML valid. Setelah divalidasi, format dan tinjau output berindentasi sebelum melakukan commit pada file konfigurasi, template feed, atau definisi WSDL ke version control.
- Gunakan Indent 2 Spasi untuk Format Web, 4 Spasi untuk XML Enterprise
- Indentasi dua spasi adalah konvensi untuk feed RSS/Atom, SVG, XHTML, Android XML, dan sebagian besar XML yang menghadap web. Indentasi empat spasi umum di lingkungan Java enterprise (Maven POM, file konteks Spring, deskriptor deployment JBoss). Sesuaikan dengan konvensi file dan toolchain Anda yang sudah ada.
- Minifikasi XML Sebelum Menyematkan dalam JSON
- Jika Anda perlu menyematkan string XML sebagai nilai field JSON, selalu minifikasi terlebih dahulu. XML berindentasi mengandung baris baru dan beberapa spasi yang harus di-escape JSON (\n, beberapa \u0020), secara dramatis mengembungkan ukuran payload. XML yang diminifikasi juga jauh lebih kecil kemungkinannya untuk memicu batas panjang baris di proxy perantara atau sistem logging.
- Escape Karakter Khusus dalam Konten Teks, Gunakan CDATA Hemat
- Untuk nilai teks pendek yang mengandung & atau <, gunakan referensi entitas (&, <) — lebih portabel daripada bagian CDATA dan bekerja dalam nilai atribut juga. Simpan bagian CDATA () untuk menyematkan blok kode besar, kueri SQL, atau fragmen HTML di mana men-escape setiap karakter khusus akan membuat konten tidak dapat dibaca.
- Deklarasikan Namespace Sedini Mungkin
- Deklarasikan namespace XML (xmlns:prefix="URI") pada elemen root atau elemen tingkat tertinggi yang menggunakan prefiks. Mendeklarasikan namespace jauh di dalam pohon dokumen membuat XML lebih sulit dibaca dan dapat menyebabkan masalah dengan parser XML berbasis aliran (SAX, StAX) yang memproses namespace secara inkremental. Contoh SOAP Envelope di atas menunjukkan pola yang direkomendasikan: semua deklarasi namespace pada elemen Envelope root.
Pertanyaan yang Sering Diajukan
Apakah data XML saya dikirim ke server saat menggunakan alat ini?
Apa yang diperiksa oleh tombol Validate?
Apakah validasi memeriksa terhadap XML Schema (XSD) atau DTD?
Apa perbedaan antara Format (Beautify) dan Minify?
Apakah pemformatan mempertahankan komentar dan atribut XML?
Bagaimana cara memformat XML dengan indentasi 4 spasi alih-alih 2?
Versi XML dan encoding apa yang didukung alat ini?
Apa yang menyebabkan error 'well-formedness' dan bagaimana cara memperbaikinya?
Bisakah saya menggunakan alat ini untuk memformat file XHTML atau SVG?
Bagaimana alat ini menangani namespace XML?
Apakah ada batas ukuran file untuk input XML?
Bagaimana cara mengonversi XML ke JSON atau JSON ke XML?
Alat Terkait
Lihat semua alat →Decode & Encode Base64 Online — Konversi Instan di Browser
Encoding & Pemformatan
Decode dan encode Base64 online gratis. Konversi real-time dengan dukungan UTF-8 dan emoji. 100% privat di browser Anda. Tanpa pendaftaran.
Konverter CSV ke JSON
Encoding & Pemformatan
Konversi CSV ke JSON di browser. RFC 4180, infer tipe, baris header, aman big-int. 100% privat, tanpa unggah.
JSON Diff (Bandingkan)
Encoding & Pemformatan
Bandingkan dua file JSON langsung di browser Anda. Sorotan side-by-side, output RFC 6902 JSON Patch, abaikan field seperti timestamp dan ID. 100% privat, tanpa upload.
Format & Validasi JSON Online — Gratis, Cepat, Privat
Encoding & Pemformatan
Format, validasi, dan rapikan JSON langsung di browser Anda. Alat online gratis dengan deteksi error, minifikasi, dan salin sekali klik. 100% privat.
Validator JSON Schema
Encoding & Pemformatan
Validasi JSON terhadap JSON Schema apa pun secara instan di browser Anda. Mendukung Draft 2020-12, 2019-09, dan Draft-07 dengan pesan error berbasis path yang presisi. 100% privat — tanpa upload, tanpa akun, gratis.
Konverter JSON ke CSV
Encoding & Pemformatan
Konversi JSON ke CSV di browser. Preset RFC 4180, Excel-EU, TSV, Pipe. Flatten objek bertingkat atau Stringify. 100% privat, tanpa unggah.