xml_formatter.ts

XML Formatter & Validator

Paste XML → Format or Minify → Copy result. Free, private, browser-based.

InstantFreePrivateNo Signup
xml — formatter & validator
Indent:
INPUT
0 chars
OUTPUT
XML Entity Cheat Sheet

Special characters and their XML entity equivalents

&&Ampersand
&lt;<Less than
&gt;>Greater than
&quot;"Double quote
&apos;'Apostrophe
&#xA;\nNewline (hex)
&#9;\tTab (decimal)
&#169;©Copyright sign
Code Snippets

How to format and parse XML in popular languages

// Format XML in the browser const parser = new DOMParser(); const doc = parser.parseFromString(xmlString, "application/xml"); const serializer = new XMLSerializer(); const formatted = serializer.serializeToString(doc); // Pretty-print with indentation function prettyXml(xml, indent = 2) { const sp = " ".repeat(indent); let level = 0; return xml.replace(/>\s*</g, ">\n<") .split("\n") .map(line => { const t = line.trim(); if (t.startsWith("</")) level--; const out = sp.repeat(level) + t; if (t.startsWith("<") && !t.startsWith("</") && !t.endsWith("/>")) level++; return out; }).join("\n"); }
Common Patterns

Click to load an example into the input

What is XML?

XML (Extensible Markup Language) is a markup language designed for storing and transporting structured data. Developed by the W3C and released in 1998, XML allows users to define their own tags, creating flexible and self-describing data structures. Unlike HTML, which focuses on presentation, XML focuses on describing the data itself.

XML is used extensively in application configuration (.config, .xml), web services (SOAP/WSDL), RSS feeds, SVG graphics, structured documentation (DocBook, DITA), and hundreds of other industry-standard formats. While JSON has become more popular for APIs, XML remains the top choice when you need schema validation (XSD), namespaces, or complex querying (XPath/XSLT).

How This XML Formatter Works

This tool uses the browser's built-in DOMParser to parse XML. If the XML is valid, it is converted into a DOM tree, then serialized back with proper indentation. If the XML is invalid, the browser generates a parsererror node containing detailed error information.

The formatting process: (1) parse XML via DOMParser, (2) serialize via XMLSerializer, (3) split tags into individual lines, (4) apply indentation based on nesting depth. For minification, all whitespace between tags is removed to produce the smallest possible output.

XML vs JSON: When to Use Which

CriteriaXMLJSON
SyntaxOpening/closing tags, attributesCurly braces, square brackets
SchemaXSD, DTD, SchematronJSON Schema
QueryingXPath, XQuery, XSLTJSONPath, jq
CommentsSupported nativelyNot supported
NamespacesFull supportNo native support
Data typesEverything is textString, number, boolean, null
Best forConfig, SOAP, SVG, RSSREST APIs, NoSQL storage

Essential XML Syntax Rules

  • Tags are case-sensitive: <Book> and <book> are two different elements
  • All tags must be closed: <item>...</item> or self-closing <item />
  • Single root element: The entire document must be wrapped in exactly one root tag
  • Attributes must have values: disabled="disabled", not bare disabled
  • Escape special characters: &, <, >, ", ' must use XML entity references
  • Proper nesting: <a><b>...</b></a> is correct; overlapping tags are not

Common XML Mistakes

  • Missing closing tags: The most common error — every opening tag needs a corresponding closing tag
  • Unescaped special characters: The & character in content must be written as &amp;
  • XML declaration in wrong position: <?xml ...?> must be the very first line, before any comments
  • Encoding mismatch: File saved as UTF-8 but declared as ISO-8859-1 causes parser errors
  • Multiple root elements: XML documents allow exactly one root element

Real-World Uses of XML

SVG (Scalable Vector Graphics): The most popular vector graphics format on the web. Every SVG file is a valid XML document with elements like <circle>, <path>, <text>. The XML format makes SVG manipulable via CSS and JavaScript.

RSS/Atom Feeds: The standard for web content syndication. RSS 2.0 and Atom both use XML to describe lists of articles, podcasts, and updates — allowing feed reader applications to automatically fetch new content.

SOAP Web Services: An enterprise protocol for system-to-system communication. Each SOAP request/response is an XML envelope containing a header and body. Though REST has become more popular, SOAP is still widely used in banking, insurance, and government.

Application Configuration: Maven (pom.xml), .NET (web.config, app.config), Android (AndroidManifest.xml), Spring Framework — all use XML for configuration. XML enables strict schema validation, ensuring configs always match the expected format.

XML Formatting Best Practices

Use consistent indentation throughout your XML documents. The most common convention is 2 spaces, though some teams prefer 4. Avoid using tabs unless your team has an established convention for them. Keep element names descriptive but concise: <customerAddress> is better than <ca> or <theAddressOfTheCurrentCustomer>.

When minifying XML for production, be aware that CDATA sections and mixed-content elements may be affected. Always validate minified output to ensure no data was lost. For version control, always commit formatted (not minified) XML so that diffs remain readable.

About Data Converters

Developer tools automate the repetitive parts of software work: formatting JSON, encoding/decoding Base64, decoding JWTs to verify token claims, generating UUIDs, formatting XML, diffing configurations. These aren't glamorous tasks, but they're the friction points that eat 10-15 minutes multiple times a day — adding up to hours weekly. Running them in a clean browser tab beats wrestling with CLI dependencies or IDE extensions that might ship your private data to a third party.

Why it matters

Fast, client-side developer tools fundamentally matter because they're used with sensitive data. JWT tokens contain user identity. Base64 payloads might encode API keys. JSON dumps include customer records. If a 'developer tool' sends your input to a server to process, you've just leaked production secrets. ZestLab's dev tools run 100% client-side with no network calls after page load — what you paste stays in your browser.

Privacy and safety

All developer tools here execute in-browser using pure JavaScript. There's no 'decode server' or 'format API' — your JWT, your JSON, your encoded payload is parsed by code running on your laptop. Verify this yourself with browser DevTools → Network tab: you'll see zero outbound requests when using any tool. That's a standard we hold because dev tools handle secrets.

Best practices

  • Never paste production JWT or API tokens into ANY online tool without verifying it runs client-side (check the Network tab)
  • Use browser private/incognito mode for one-off decoding of sensitive payloads
  • Bookmark tools you use daily — ZestLab tool URLs are stable and don't require accounts
  • When formatting JSON with secrets for team review, redact credentials before sharing the formatted output