XML Tools
Read a document instead of scanning it: pretty-print it, check that it is well-formed, validate it against a DTD or an XSD, query it with XPath, diff two versions structurally, or flatten it into CSV or YAML. Every parser here is written against the XML specification and runs in the page, so confidential documents stay on your device and the tools work offline.
Most popular
- xmlXML Formatter● ready
Indent 2, 4 or 8 spaces or tabs, wrap attributes when a start tag gets long, normalise empty elements and keep xml:space="preserve" subtrees exactly as they were.
- xmlXML Validator● ready
Every structural error reported with its position and a plain-English reason: which element was left open, which closing tag was found, which attribute appears twice.
- xmlXPath Tester● ready
Type a path, see the matches as you type, and get a readable error when the engine hits an axis or function it does not implement rather than an empty result.
- xmlXML → CSV● ready
Point it at the repeating element and get a table: one row per record, one column per leaf, attributes marked with @ — ready for a spreadsheet.
- xmlXSD Validator● ready
Element order, occurrence, required attributes, unknown attributes and built-in types with facets — reported against the node that broke the rule.
Format & Clean
- xmlXML Formatter● ready
Indent 2, 4 or 8 spaces or tabs, wrap attributes when a start tag gets long, normalise empty elements and keep xml:space="preserve" subtrees exactly as they were.
- xmlXML Minifier● ready
Shrink a document for transport or a log line, with a per-change report of exactly what was removed and how much it saved — and mixed content left intact.
- xmlXML Linter● ready
The issues a plain validator cannot report because the document is still valid: mixed tabs and spaces, stale namespace declarations, a BOM that contradicts the encoding, repeated attribute values.
- xmlComment Stripper● ready
Take comments out of a document for a smaller payload or a cleaner diff, with a count of what was removed and a guarantee that comment-looking text inside CDATA survives.
- xmlCDATA Encoder● ready
Put markup, SQL or HTML inside XML without escaping every angle bracket, and split the terminator correctly when the text contains one.
- xmlEntity Escape● ready
Both directions of XML escaping, with the unknown entities reported instead of silently dropped — the difference between ` ` and a real non-breaking space.
- xmlEncoding Fixer● ready
Turn `café` back into `café`, drop the byte-order mark that breaks string comparison, and fix a declaration that says ISO-8859-1 while the bytes are UTF-8.
- xmlLine Numbers● ready
Line and column numbers for every row, so a message from a parser or a colleague ('line 214, column 9') points at the same place here.
Inspect & Query
- xmlXML Tree Viewer● ready
See the shape of a document instead of its syntax: expand and collapse elements, read attributes at a glance, and copy the XPath that selects exactly the node you clicked.
- xmlXPath Tester● ready
Type a path, see the matches as you type, and get a readable error when the engine hits an axis or function it does not implement rather than an empty result.
- xmlNamespace Resolver● ready
The mapping a document actually declares, prefix by prefix, with the scope where each applies and the elements that use it.
- xmlAttribute Extractor● ready
List every `id`, `sku` or `href` in a document as a flat column — with duplicates highlighted and a count, ready to paste into a spreadsheet or a check script.
- xmlElement Stats● ready
A quick profile of a document: how many of each element, how deep it nests, which names dominate, and where the bytes actually go.
Compare & Convert
- xmlXML Diff● ready
A diff that understands documents: inserted records are reported as additions rather than shifting every following line, and a reformatted file is not reported as a rewrite.
- xmlXML → CSV● ready
Point it at the repeating element and get a table: one row per record, one column per leaf, attributes marked with @ — ready for a spreadsheet.
- xmlXML → YAML● ready
A readable YAML rendering of a document, using the @attribute convention and text keys, with types coerced only when every value agrees.
- xmlXML Merge● ready
Concatenate exports into one document — wrapper root or the first document's root reused — with a `source` attribute recorded on each merged part so the origin is never a guess.
- xmlXML Split● ready
Turn a batch export into one file per record, each still a valid document with its ancestors rebuilt around it and the file name taken from a key attribute.
- xmlXSLT Transformer● ready
Write or paste a stylesheet, watch the transform run as you type, and see the result rendered plus the exact serialized output.
Schemas & Validation
- xmlXML Validator● ready
Every structural error reported with its position and a plain-English reason: which element was left open, which closing tag was found, which attribute appears twice.
- xmlXSD Validator● ready
Element order, occurrence, required attributes, unknown attributes and built-in types with facets — reported against the node that broke the rule.
- xmlSchema Generator● ready
Give it one or two real documents and get a starting-point schema: types guessed from the values, minOccurs and maxOccurs from what repeats, required attributes from what always appears.
- xmlDTD Validator● ready
Content models, attribute types, required and fixed values, ID uniqueness and IDREF resolution — validated against the DTD as a real parser would.
- xmlFeed Validator● ready
The mistakes that make a feed silently fail in readers: a missing channel link, duplicate GUIDs, an Atom-style date in an RSS pubDate, entries with no alternate link.
- xmlXXE Risk Checker● ready
See what a document asks a parser to do before you parse it: external and parameter entities, an external DTD subset, XInclude, and the entity-expansion patterns behind billion-laughs.
- xmlSOAP Builder● ready
Build a request skeleton with header and body parameters, correct namespace prefixes, escaped values and the right transport header line for your SOAP version.
All tools
- xmlXML Formatter● ready
Indent 2, 4 or 8 spaces or tabs, wrap attributes when a start tag gets long, normalise empty elements and keep xml:space="preserve" subtrees exactly as they were.
- xmlXML Validator● ready
Every structural error reported with its position and a plain-English reason: which element was left open, which closing tag was found, which attribute appears twice.
- xmlXML Minifier● ready
Shrink a document for transport or a log line, with a per-change report of exactly what was removed and how much it saved — and mixed content left intact.
- xmlXML Linter● ready
The issues a plain validator cannot report because the document is still valid: mixed tabs and spaces, stale namespace declarations, a BOM that contradicts the encoding, repeated attribute values.
- xmlComment Stripper● ready
Take comments out of a document for a smaller payload or a cleaner diff, with a count of what was removed and a guarantee that comment-looking text inside CDATA survives.
- xmlCDATA Encoder● ready
Put markup, SQL or HTML inside XML without escaping every angle bracket, and split the terminator correctly when the text contains one.
- xmlEntity Escape● ready
Both directions of XML escaping, with the unknown entities reported instead of silently dropped — the difference between ` ` and a real non-breaking space.
- xmlEncoding Fixer● ready
Turn `café` back into `café`, drop the byte-order mark that breaks string comparison, and fix a declaration that says ISO-8859-1 while the bytes are UTF-8.
- xmlLine Numbers● ready
Line and column numbers for every row, so a message from a parser or a colleague ('line 214, column 9') points at the same place here.
- xmlXML Tree Viewer● ready
See the shape of a document instead of its syntax: expand and collapse elements, read attributes at a glance, and copy the XPath that selects exactly the node you clicked.
- xmlXPath Tester● ready
Type a path, see the matches as you type, and get a readable error when the engine hits an axis or function it does not implement rather than an empty result.
- xmlNamespace Resolver● ready
The mapping a document actually declares, prefix by prefix, with the scope where each applies and the elements that use it.
- xmlAttribute Extractor● ready
List every `id`, `sku` or `href` in a document as a flat column — with duplicates highlighted and a count, ready to paste into a spreadsheet or a check script.
- xmlElement Stats● ready
A quick profile of a document: how many of each element, how deep it nests, which names dominate, and where the bytes actually go.
- xmlXML Diff● ready
A diff that understands documents: inserted records are reported as additions rather than shifting every following line, and a reformatted file is not reported as a rewrite.
- xmlXML → CSV● ready
Point it at the repeating element and get a table: one row per record, one column per leaf, attributes marked with @ — ready for a spreadsheet.
- xmlXML → YAML● ready
A readable YAML rendering of a document, using the @attribute convention and text keys, with types coerced only when every value agrees.
- xmlXML Merge● ready
Concatenate exports into one document — wrapper root or the first document's root reused — with a `source` attribute recorded on each merged part so the origin is never a guess.
- xmlXML Split● ready
Turn a batch export into one file per record, each still a valid document with its ancestors rebuilt around it and the file name taken from a key attribute.
- xmlXSLT Transformer● ready
Write or paste a stylesheet, watch the transform run as you type, and see the result rendered plus the exact serialized output.
- xmlXSD Validator● ready
Element order, occurrence, required attributes, unknown attributes and built-in types with facets — reported against the node that broke the rule.
- xmlSchema Generator● ready
Give it one or two real documents and get a starting-point schema: types guessed from the values, minOccurs and maxOccurs from what repeats, required attributes from what always appears.
- xmlDTD Validator● ready
Content models, attribute types, required and fixed values, ID uniqueness and IDREF resolution — validated against the DTD as a real parser would.
- xmlFeed Validator● ready
The mistakes that make a feed silently fail in readers: a missing channel link, duplicate GUIDs, an Atom-style date in an RSS pubDate, entries with no alternate link.
- xmlXXE Risk Checker● ready
See what a document asks a parser to do before you parse it: external and parameter entities, an external DTD subset, XInclude, and the entity-expansion patterns behind billion-laughs.
- xmlSOAP Builder● ready
Build a request skeleton with header and body parameters, correct namespace prefixes, escaped values and the right transport header line for your SOAP version.
About XML Tools
XML rewards precision and punishes guessing. Whitespace between elements is insignificant — until it is inside mixed content; an unprefixed attribute has no namespace; a DOCTYPE is not inert if your parser resolves entities; and a feed with duplicate GUIDs looks fine and silently fails in readers. These tools make each of those facts visible. The parser, the XPath 1.0 engine, the DTD and XSD validators, the structural diff and the encoding repair are all written from the specifications and run locally, so a result comes with the reason behind it rather than a bare pass or fail. The schema tools state which constructs they implement and which they do not, the XXE checker reports what a document asks a parser to do without ever doing it, and the converters preserve the element/attribute distinction instead of flattening it away.
Related categories
- JSON Tools
Validate, format, and convert JSON instantly in your browser.
- YAML Tools
Validate, format, and convert YAML config files in your browser.
- CSV Tools
Fast, private browser-based tools for working with CSV files.
- Code Formatter Tools
Format, minify and inspect HTML, CSS, SQL, JavaScript and more — right in your browser.
Frequently asked questions
Is my XML uploaded anywhere?
No. Parsing, validation, querying, formatting and conversion all run in your browser — the pages never make a request with your document, and they keep working with the network switched off. That also means no external DTD, schema or stylesheet is ever fetched, which is why the DTD and XSD tools ask you to paste the content instead of pointing at a URL.
How complete are the DTD and XSD validators?
They are honest subsets. DTD content models, attribute types, ID uniqueness and IDREF resolution are implemented; conditional sections and parameter-entity substitution are not. For XSD, element and attribute declarations, sequence/choice/all, occurrence, simple types with facets and simpleContent extensions are implemented; include/import, substitution groups, identity constraints and XSD 1.1 assertions are not. Each page lists what it covers so a pass is a signal rather than a false assurance.
Why does formatting sometimes leave part of the document alone?
Because whitespace is content in mixed content. In `<p>Hello <b>world</b></p>` the space before `<b>` is part of the text, so re-indenting the markup would change what a consumer sees. The formatter indents element-only content and leaves mixed content and xml:space="preserve" subtrees exactly as they were.
Can I convert between XML and JSON here?
Those two directions already live in the JSON category, alongside YAML↔XML and CSV→XML, and are not duplicated here — this category is everything XML needs around them: formatting, validation, querying, diffing, splitting and merging, plus conversion to CSV and YAML.
What should I use to check security-sensitive XML?
The XXE Risk Checker, before the document reaches your parser. It reports external and parameter entities, an external DTD subset and XInclude without resolving or executing anything, and lists the parser settings that remove the exposure. Treat any pass as specific to the document you pasted, not as a statement about your application.