XML Compare: Find the Differences Between Two XML Files

Compare two XML files element by element and attribute by attribute, each difference with its path, ignoring formatting and attribute order. Free, in your browser.

Original

Paste cells or a Google Sheets link

Changed

Paste cells or a Google Sheets link

How it works

  1. Add both files

    The original and the changed version: CSV, Excel, JSON, YAML, XML, text or code, or cells pasted from Google Sheets.

  2. Match them up

    Tables are matched row by row on a key column found for you (an ID, SKU or email); JSON, YAML and XML key by key, with lists of records matched by their id; text line by line.

  3. See the differences, download them all

    The summary and the first differences show on the page, old values struck through and new ones beside them. The full comparison downloads as Excel, CSV, a highlighted HTML report, a unified diff or a JSON list of changes.

XML compare: elements and attributes, not lines

  • xml compare
  • xml diff
  • compare xml files
  • compare two xml files online

XML compare reads both files as trees and compares them element by element and attribute by attribute, so indentation, line breaks and attribute order are not differences. Each change is listed with its path. Works for config files, feeds, SVG, KML, GPX and plist files too; the full xml diff downloads as Excel, HTML or JSON.

People also search for

  • xml diff checker
  • compare xml online
  • json compare

Why it matters

Private by design

Bank statements, payroll and customer lists never leave your computer: the file is read and written in your browser.

Nothing silently changed

Leading zeros, long ID numbers, commas inside quotes and line breaks inside cells come through exactly as they were.

Numbers stay numbers

Values like 1,234.50, $1,200 and 7% are recognised, so Excel and JSON get real numbers rather than text.

Questions

What if the rows are in a different order?

Choose a key column (an ID found in both files is picked for you) and rows are matched by it, whatever order they are in.

Can I ignore case, spaces or a column?

Yes. Ignore upper and lower case, extra spaces, and any columns - a last-updated timestamp, say - that you expect to differ.

Is 1.0 the same as 1?

By default, yes: numbers are compared as numbers, so 1,200 and 1200.00 match. Switch that off to compare the exact text.

Can it compare Excel files or Google Sheets?

Yes: drop in two .xlsx files (and pick the sheet in each), or paste cells from Google Sheets for either side.

Can it compare JSON, YAML or XML?

Yes, key by key: the order of keys does not matter, numbers match their text form if you want, and lists of records with an id are matched by it even when re-ordered. Each difference shows its path, such as items[id=3].price.

Can it compare text or code?

Yes, line by line, as a diff checker: added and removed lines with their line numbers, and a unified .diff you can apply with git or patch.

Why are only some differences shown?

The page shows the summary and the first ten differences so you can check the comparison at a glance. The full comparison, every difference, is one click away as Excel, CSV, an HTML report or a diff.

Is my data uploaded?

No. The whole conversion runs in your browser, so the file never leaves your computer.

Can it open a password-protected PDF or Excel file?

Yes. Drop it in and you are asked for the password; the file is unlocked in your browser and the password is never sent or saved. PDFs locked with RC4 or AES (up to AES-256, PDF 2.0) and Excel workbooks saved with Encrypt with Password both open. A PDF that only restricts copying or printing opens without asking. Without the password nothing is guessed: the file stays shut.

How big a file can it handle?

Hundreds of thousands of rows are fine on a normal laptop; the preview shows the first rows and the download has them all.