XML Formatter
Format and validate XML with 2-space indentation, or minify it — uses the browser's DOMParser.
How to use this tool
- 1Paste XML into the left 'Input XML' panel.
- 2Click Format to pretty-print with 2-space indentation, or Minify to compact it.
- 3If the XML is invalid, a red error message appears below the buttons.
- 4Copy the result from the right Output panel.
About XML Formatter
This XML formatter pretty-prints with two-space indentation or minifies, using the browser’s DOMParser. Invalid XML shows a clear error instead of silently “fixing” broken tags.
SOAP responses, Android layouts, and config files arrive as one-line blobs. Readable structure is the difference between a five-minute fix and an hour of guessing.
Paste XML into the left 'Input XML' panel. Click Format to pretty-print with 2-space indentation, or Minify to compact it. If the XML is invalid, a red error message appears below the buttons. Copy the result from the right Output panel. Processing stays in your browser.
Use it to inspect API XML before blaming your client, to minify a hand-edited config, or to teach why well-formedness matters. Pair with a schema validator when you need more than syntax.
Invalid XML fails parse — this tool does not repair tags. Attribute order may change after round-trip. Huge documents can stall the main thread.
Close the tab when you finish so sensitive input is not left sitting in page memory.
Code examples
JavaScript (DOMParser)
const parser = new DOMParser();
const doc = parser.parseFromString(xmlString, "application/xml");
const err = doc.querySelector("parsererror");
if (err) throw new Error(err.textContent);Python
import xml.dom.minidom
pretty = xml.dom.minidom.parseString(xml_str).toprettyxml(indent=" ")
minified = "".join(line.strip() for line in pretty.splitlines() if line.strip())Frequently asked questions
Different tools use different definitions and parsers, so small gaps are common. XML Formatter applies browser-native parsers and encoders appropriate to the job with one consistent browser-side rule set. Hidden characters, stricter syntax, or a different tokenizer usually explain the mismatch. Reduce the input to a minimal sample, then add pieces back until the difference appears. Match the rule your destination actually enforces.
Treat the error as a signal that this environment is stricter or configured differently. Browser APIs reject malformed structures early instead of guessing. Convert to a boring intermediate when it helps—plain UTF-8 text, PNG, WAV, or an unlocked PDF—then retry. If the intermediate works, the original encoding was the problem. Keep that minimal sample for the next regression check.
Runtimes disagree even when feature names match. Locales, parser strictness, codec builds, and library versions differ between your browser and CI. Export the exact bytes from XML Formatter, hash them, and compare in the pipeline. Align normalization steps so both systems see the same input. Use the browser result as a reference artifact, then make CI match it.
Desktop apps win on deep feature sets, batch farms, and specialized hardware paths. XML Formatter wins on zero install, private local processing, and speed for the everyday job on this page. Choose desktop software for multi-hour editorial work or exotic edge formats. Choose this tool when you need a correct result quickly without uploading. Many people do a quick pass here first, then open the heavy suite only if an edge case demands it.
Prefer XML Formatter whenever the input is personal, unpublished, customer-owned, or under NDA, because the core transform stays in your browser via browser-native parsers and encoders appropriate to the job. Cloud services can still help for formats your browser truly cannot decode, but you must trust their retention policy. Strip secrets before any upload. Privacy is usually the reason to stay local—not a longer marketing checklist.
Start from the best original input you still have. Change only what the destination requires. Prefer lossless intermediates when you must convert twice. Because the tool is local, iterate in small steps: tweak one setting, re-run, compare. Spot-check a short sample before batching anything important.
No account is required for normal use. The core xml formatter transform runs in your browser on your device using browser-native parsers and encoders appropriate to the job. You get on-screen output, a copy action, or a download without a mandatory ToolBrigade upload for that step. Keep your browser updated. A few lookup utilities may call public reference APIs for live fields only—they still do not need your private documents.
Lighter text, code, calculator, and many image jobs work on modern phones. Large video encodes and huge PDFs are happier on a plugged-in laptop with more RAM. Fully client-side flows can continue offline once scripts are cached; live lookups still need network. If a run seems stuck, try a smaller sample, free memory by closing tabs, and confirm the input is not truncated. Prove the path on a short fixture before blaming the algorithm.