Private browser-based XML diff

XML Compare

Compare XML by meaning, not formatting. Review exact text changes, normalized XML, or namespace-aware structural differences without uploading a document.

Private: your XML never leaves this browser.
Advanced rules and presets
Suggested setup:

Formatting rules

Semantic matching

Automatic identity detection is shown in the result before it is used. Child order stays meaningful unless you enable the rule above.

Ignore and value rules

Rules are applied only in normalized and semantic comparison. Exact text mode compares the source as written.

Original XML

Original XML

Empty

Paste XML or drop an .xml file here.

Changed XML

Changed XML

Empty

Paste XML or drop an .xml file here.

How to compare XML files

Paste or upload the original XML and the changed XML, choose the comparison mode that fits the job, then select Compare XML. The result stays in your browser and shows a path for every meaningful difference.

1. Choose the right mode

Exact mode is useful for source reviews. Normalized mode removes line-ending and formatting noise. Semantic mode is best for configuration, feeds, messages, and generated XML because it compares the parsed document structure.

2. Add only necessary rules

Ignore a timestamp, request ID, signature, or another generated field when it is expected to change. Keep child order on by default because order can change XML meaning.

3. Review and export locally

Filter changes by type, copy a concise report, save a JSON change report, or place the changed XML into the editable merge output. No account or cloud storage is involved.

Text diff versus semantic XML diff

Namespaces

Semantic mode compares namespace URIs and local names, so different prefixes that point to the same namespace are not treated as a change by default.

Attributes and order

Attribute order does not matter in XML. Child-element order does, so XML Compare preserves it unless you explicitly ignore order for a collection.

SOAP messages

Use the SOAP preset to focus on the body and ignore common generated header values. It is a practical starting point that you can inspect before comparing.

Sitemaps and POM files

The Sitemap preset suggests matching URLs by loc. The Maven POM preset suggests stable dependency identifiers while preserving values that affect builds.

Privacy and security

XML Compare runs entirely on your device. The site does not upload, save, or send the XML entered in either editor. Files stay local to the browser session, and Clear removes the in-page copies. For safe parsing, the tool rejects documents with DTD or entity declarations instead of attempting to resolve them.

Ignoring timestamps and generated IDs

Open Advanced rules and add a comma-separated XPath-style rule such as //timestamp, //@generatedAt, or /Envelope/Header/MessageID. Use these only for values that are intentionally volatile. A difference skipped by a rule is counted and identified in the result warning.

XML Compare FAQ

Does XML Compare upload my files?

No. The comparison, formatting, and exports happen in your browser. Files selected from your device are read locally and are never sent to Compare2Lists.

Which comparison mode should I use?

Use Exact when every character matters, Normalized when you want to remove harmless formatting noise, and Semantic when XML structure, namespaces, attributes, and meaningful values matter most.

Are attributes compared in their written order?

No in semantic mode. XML attributes are unordered, so the tool compares their names and values. Child elements retain their order unless you choose an explicit ignore-order rule.

How are XML namespaces handled?

Semantic comparison uses the namespace URI and local element name. Prefixes such as soap and env are treated as equivalent when they point to the same URI unless you ask to compare prefixes literally.

Can I ignore timestamps or generated IDs?

Yes. Add XPath-style paths such as //timestamp or //@generatedAt in Advanced Rules. The tool explains when a rule is responsible for a skipped difference.

What XML is blocked for safety?

Documents containing DTD or entity declarations are rejected before parsing. This prevents external-entity and entity-expansion input from being processed in the browser.

Related comparison tools

Compare URLs

Inspect URL components and tracking parameters without opening either link.

Open tool

Compare Two Texts

Paste prose, emails, or snippets and review text revisions without uploading either version.

Open tool

Compare Two Files

Review ordinary text or code files line by line when XML structure is not required.

Open tool

JSON Compare

Compare JSON documents by structure and values, then export a local change report.

Open tool

YAML Compare

Compare YAML structure, source text, and multi-document streams in the browser.

Open tool

Compare Two Lists

Compare pasted list values and find unique entries, shared values, and duplicates.

Open tool

Browse all comparison tools

Explore the full set of browser-based comparison and list tools.

Open tool