Skip to content

XML tree viewer

Explore a large XML document as a collapsible tree — element names, attributes and text — with every branch expandable from the keyboard.

  • Runs in your browser
  • Files are never uploaded
  • Free, no account
XML tree viewer
Explore a large document as a collapsible tree: element names, attributes and text values, with everything expandable from the keyboard.
Document tree

Paste or load an XML document to explore it here. Every branch is a native disclosure element, so Tab and Enter expand it without a mouse.

Your XML never leaves this tab — check it yourself—

Starting the network probe…

The counter above wraps fetch, XMLHttpRequest and navigator.sendBeacon in this tab and counts every call. It does not block anything — it just reports.

Two ways to verify independently

  1. Turn off Wi-Fi or enable airplane mode, then use the tool. It keeps working, because the page is already fully loaded.
  2. Open your browser devtools, switch to the Network tab, clear it, and run the tool. No new row appears.

Why this matters

In 2025 researchers found that popular online formatters had retained tens of thousands of user-submitted snippets — JSONFormatter.org and CodeBeautify together exposed roughly 80,000 saved documents, many containing live cloud credentials, private keys and internal database connection strings, because “format this” quietly meant “upload this”. A separate incident exposed roughly 3.5 million user PDFs on a document-conversion service. The only structural fix is not sending the data in the first place: this site is served under a Content-Security-Policy whose connect-src contains no third-party origin, so a request off this device cannot be made even by accident.

Reading a document rather than a wall of text

A formatted XML document is readable up to a few hundred lines. Past that, indentation stops helping: the element you want is on line 4,000 and its parent is on line 12. A tree collapses the parts you are not looking at, so the structure becomes navigable rather than merely tidy.

Each branch shows the element name, every attribute with its value, and the text content when the element has any. A count badge on collapsible branches tells you how many children are hidden, so you can tell a list of three from a list of three thousand without expanding it.

Keyboard navigation

Every branch is a native HTML disclosure element, not a scripted widget. That means:

  • Tab and Shift+Tab move between branches in document order.
  • Enter or Space expands and collapses the focused branch.
  • Your browser’s find (Ctrl+F or Cmd+F) searches everything currently expanded.
  • Screen readers announce the expanded/collapsed state without any extra ARIA, because the semantics are built in.

The first two levels open automatically, because that is usually the shape you want to see on arrival. There is intentionally no expand-all: on a 50,000-node document it would render every node at once and freeze the tab.

What the tree does not show

  • Whitespace-only text nodes. In an indented document these are formatting, not data. Elements with real text show it inline.
  • Namespace declarations as separate nodes. They appear as ordinary xmlns attributes, which is where they live in the document anyway.
  • Resolved entity references. The parser resolves them, so you see the character rather than the reference.

File size and what actually limits it

There is no upload, so there is no upload cap; the limit is your device’s memory and how many DOM nodes the browser will happily lay out. A few tens of megabytes is comfortable on a desktop browser. A phone will get slow considerably earlier — the parse is fast, the rendering is not. Use the file button rather than pasting for anything large; putting ten megabytes into a textarea is slower than reading the file directly.

Common jobs this is good at

  • Finding the one <fault> element buried in a SOAP response.
  • Checking which namespaces a WSDL actually declares before writing a client.
  • Auditing an Android AndroidManifest.xml or a Maven POM for a specific attribute.
  • Inspecting an RSS or Atom feed to see why an item is not appearing.
  • Reading an SVG’s structure to find the path you need to extract.

Questions

How big a file can I open?

The limit is your device memory, not a server quota. A few tens of megabytes is comfortable on a desktop browser; on a phone, expect the tree to become sluggish well before that. Use the file button rather than pasting for anything large.

Can I navigate it with the keyboard?

Yes. Every branch is a native disclosure element, so Tab moves between them and Enter or Space expands and collapses. Browser find (Ctrl+F / Cmd+F) searches the expanded text.

The first two levels are open and the rest are closed. Can I change that?

The first two levels open automatically because that is usually the shape of the document you want to see first. Deeper branches expand individually — there is no expand-all, deliberately, because on a large document it would freeze the page.

Where did the whitespace between my elements go?

Whitespace-only text nodes are not shown, because in an indented document they are formatting rather than data. Text nodes with actual content appear to the right of the element name.