XML Formatter
Give a machine-generated XML document a readable shape. Attribute values are scanned with quote tracking, so an attribute containing a greater-than sign is not cut in half, and text, entities, comments and CDATA are left exactly as written. Attributes can also be sorted, which makes two exports of the same document diffable.
Attribute order carries no meaning in XML, so sorting is safe and makes diffs readable.
Turn this off if you care about the exact spacing of the source.
How xml formatter works
- Paste the XMLFrom a build log, an API response, a sitemap or an export.
- Set the shapeChoose the indent width, and sort attributes if you want clean diffs.
- Check the notesUnclosed tags, mismatched closes and stray root elements are listed with line numbers.
What you get
Re-indent XML without touching the text inside it. Everything happens inside this page: the file is read by your browser, transformed in memory and handed straight back to you as a download. There is no upload queue, no waiting for a server, and nothing left behind when you close the tab.
Supported formats
This tool works on text you paste or type, so there is no file format to worry about. Nothing you type is sent anywhere.
Limitations, stated up front
- Not a validating parser: no schema, no namespace resolution, no entity checking, and no repair of broken nesting.
- Comments, CDATA and multi-line declarations are carried across unchanged, so a comment written on one line stays on one line.
Frequently asked questions
Is the document validated?
No. This is a tokeniser, not a validating parser. It notices mismatched and unclosed tags and tells you where, but it does not check the document against a schema, resolve namespaces or verify entities. It re-indents what it is given, and it does not repair the nesting.
Are entities decoded?
No. An ampersand entity stays as written. Decoding would mean choosing a DTD, a schema or nothing at all, and each choice can change the value. Leaving them alone keeps the transformation lossless, which is what a formatter should be.
What about whitespace that matters?
The contents of pre, textarea, script and style elements are never re-wrapped or re-indented, because in those elements whitespace is data. Everywhere else it is collapsed by default, which you can turn off.
Why does it say there are several root elements?
Because a well-formed XML document has exactly one root. Several usually means the file is a concatenation of documents, which is valid in many pipelines but not as a single XML file.
Is my XML uploaded?
No. Formatting is entirely local, and Furtu makes no outbound requests while doing it — which is also why an XML file cannot make your browser fetch a URL on your network.