Decode XML entities back to text. Strict mode accepts only the five predefined XML names plus numeric references, so HTML-only names are correctly reported as undeclared.
Show calculation steps
Processed privately in your browser — nothing you paste is uploaded, logged or stored.
Reading escaped XML content
Decoding converts the five predefined entities and numeric character references back to characters, which is what you need when reading a feed, a configuration file or an API response where the payload has been escaped for transport.
Worked example
<title>Tom &amp; Jerry</title> → <title>Tom & Jerry</title>
Escaped markup inside markup
An RSS description often contains a whole HTML document escaped into a single element. Decoding it reveals the markup, which is the intended content rather than a fault — the escaping is what keeps the feed itself parseable.
Undeclared entities
and other HTML names are not XML entities. A document using them without declaring them is invalid, and a parser will reject it. The decoder shows them unchanged so the problem is visible rather than hidden.
Limits
Decoded content is data to inspect. Placing it back into a document requires escaping it again. Everything runs in your browser.
How to use the XML Entity Decoder
- Paste the XML text containing entities.
- Keep strict mode on to accept only the five XML-predefined names plus numeric references.
- Turn on the lenient option if the document mixes in HTML-style names.
- Click "Decode XML entities".
Frequently asked questions
Why is reported as unknown?
Because it is an HTML entity, not an XML one. In XML it must be declared in a DTD or written numerically as . Encountering it usually means the content is really HTML, or was produced by a tool that assumed HTML rules.
What is the lenient option for?
Real-world feeds – RSS in particular – frequently contain HTML entity names despite being XML. Lenient mode decodes them so you can read the content, while strict mode shows you exactly which names a conforming XML parser would reject.