Have a look at File comparison tools, from which I am using WinMerge. It has an ability to compare XML documents (you may wish to enable DisplayXMLFiles prefilter for v2.14.0 or PrettifyXML for v2.16.x).

DisplayXMLFiles.dll - This plugin pretty-prints XML files nicely by inserting tabs and line breaks. This is useful for XML files that do not have line returns in convenient locations.

Note for v2.16.x

The plugin PrettifyXML is supplied with the software package. It can be activated as following:

  • Make sure that Plugins โ†’ Plugin Settings โ†’ Enable plugins is enabled.
  • Then use either File โ†’ Recompare As โ†’ Prettify XML or Plugins โ†’ Scripts โ†’ Prettify XML

For those who wish to play with deprecated DisplayXMLFiles, he needs to download e.g. winmerge-2.16.14-full-src.7z and copy Plugins\dlls\X64\DisplayXMLFiles.dll to WinMerge\MergePlugins\.

See also my feature comparison table.

Answer from dma_k on Stack Overflow
๐ŸŒ
Altova
altova.com โ€บ xmlspy-xml-editor โ€บ compare-xml
Compare XML Files | Altova
DiffDog also supports XML-aware comparisons, including graphical XML Schema differencing and will automatically generate an XSLT stylesheet to transform XML documents to the new XSD. You can download a free trial of DiffDog, or test drive the MissionKit tool suite, which includes both XMLSpy ...
๐ŸŒ
Xlcompare
xlcompare.com โ€บ compare-xml-files.html
Compare XML Files Online. Free. No Upload. Get the Semantic XML diffs.
October 3, 2009 - In our development process we are using XML trees in most cases. In XML Compare you can choose the best option for you. If text representation is more suitable for the data, you have โ€“ you can use it in the XML Compare. Spreadsheet Tools gives you the ultimate XML comparison and merging tool.
Top answer
1 of 11
36

Have a look at File comparison tools, from which I am using WinMerge. It has an ability to compare XML documents (you may wish to enable DisplayXMLFiles prefilter for v2.14.0 or PrettifyXML for v2.16.x).

DisplayXMLFiles.dll - This plugin pretty-prints XML files nicely by inserting tabs and line breaks. This is useful for XML files that do not have line returns in convenient locations.

Note for v2.16.x

The plugin PrettifyXML is supplied with the software package. It can be activated as following:

  • Make sure that Plugins โ†’ Plugin Settings โ†’ Enable plugins is enabled.
  • Then use either File โ†’ Recompare As โ†’ Prettify XML or Plugins โ†’ Scripts โ†’ Prettify XML

For those who wish to play with deprecated DisplayXMLFiles, he needs to download e.g. winmerge-2.16.14-full-src.7z and copy Plugins\dlls\X64\DisplayXMLFiles.dll to WinMerge\MergePlugins\.

See also my feature comparison table.

2 of 11
22

I wrote and released a Windows application that specifically solves the problem of comparing and merging XML files.

Project: Merge can perform two and three way comparisons and merges of any XML file (where two of the files are considered to be independent revisions of a common base file). You can instruct it to identify elements within the input files by attribute values, or the content of child elements, among other things.

It is fully controllable via the command line and can also generate text reports containing the differences between the files.

๐ŸŒ
TextCompare
textcompare.org โ€บ xml
Online Xml Compare Tool
No Installation: This is a web based tool, no software installtion required. It works on any modern browser like Firefox, Chrome, Edge etc on Windows, Mac or Linux based computer. Unlimited: There is no limit on number of comparisons you can do. You can compare as many Xml files as you want. No, all the processing is done on your ๐Ÿ–ฅ browser, so nothing is saved on our server unless you choose to save to share online. For private sharing, you can download the diff as PDF file.
๐ŸŒ
SemanticDiff
semanticdiff.com โ€บ online-diff โ€บ xml
SemanticDiff - Compare XML Online
Compare two XML files in your browser using our free semantic diff tool. See how values and attributes differ while ignoring formatting changes.
๐ŸŒ
CoreFiling
corefiling.com โ€บ home โ€บ open source tools โ€บ xml comparison tool
Free Online XML Comparison Tool
June 20, 2025 - CoreFiling XML Differences uses XML Pretty Printer and diff to display differences between XML files in an easy-to-read format.
๐ŸŒ
Ali-ulvi
ali-ulvi.github.io โ€บ XML_equality_checker_comparer.html
XML Compare Test Tool
Sometimes we need to compare XML files ignoring their elements' order but there was not such FREE tool before. Now there is! Download here.
๐ŸŒ
Online Text Compare
onlinetextcompare.com โ€บ xml
Compare XML files online
FREE two-way XML format, diff and merge tool. No Signup required. Nothing to install. All comparisons are 100% private, secure and happens locally right in your web browser
Find elsewhere
๐ŸŒ
JSoftwareLabs
jsoftwarelabs.com โ€บ compare-diff-online โ€บ xml-comparison
Compare xml online - XML diff tool
Best online XML diff and compare tool with ignoring order of elements and namespaces capability. Supports large files and different xml objects and code compare
Top answer
1 of 6
9

Technically, XMLs are different

  • if they have whitespaces or not
  • if the order is different
  • if they have comments or not
  • if they have processing instructions or not
  • if their encoding is different
  • if their namespaces are different

but of course you can decide to ignore that or not, based on the semantic information an XML does not have.

Microsoft has developed the XML Diff and Patch tool for this purpose and you can integrate it in your own applications.

Note: the tool installs as "SQLXML Bulkload in .NET Code Sample" and comes with a Visual Studio solution XmlDiffView.sln that you need to compile yourself. Some basic programming knowledge in C# and Visual Studio Community Edition should be ok.

However, as mentioned in one of the answers on Stack Overflow, it has been compiled and made available on Bitbucket.

After that it comes with a UI that let's you choose the various XML comparison options:

When I apply it to the 2 XMLs of your questions, it throws an exception. That is because of the namespaces which are not defined. After removing the namespaces, it says:

2 of 6
6

Focusing on the part that moved sections should be reported as no difference made me think of https://semanticmerge.com/, which doesn't compare XML-files, but C# and C code. And as it understand those languages it is able to display if code has moved and not changed.

This leads to an alternative approach for this question: Could it be possible to translate the XML into C# classes, and then do a semantic merge on the resulting code?

One possible approach, if this tool is not written already, could be to translate each and every element to classes, and each attribute (and body texts) to a string property within that class. If you want to ignore namespaces, then let your translator remove them in the translation process.

I translated the XML example given as proof of concept and got the following:

class soapenv__Body {
  class mes__GetItem {
    class mes__ItemShape {
      class typ__BaseShape {
          string body="IdOnly";
      }
      class typ__BodyType {
          string body="Textus";
      }
      class typ__AdditionalProperties {
        class typ__FieldURI  {
            string FieldURI="item:Subject";
        }
        class typ__FieldURI  {
            string FieldURI="item:Categories"; 
        }
      }
    }
    class mes__ItemIds {
      class typ__ItemId {
          string Id="AAMYAAA=";
      }
    }
  }
}

Then I switched the mes:ItemIds and mes:ItemShape and changed the text to Textus. Compared the following two files in Semantic Merge and got the following image:

In this image one can see the move, indicated by the M icon, and the change in text indicated by the C icon. Lines indicates where the different parts have moved/changed, and it possible to actually see the differences if they exist.

Note that Semantic Merge even though understanding C# code, isn't to strict on the identical class names of typ__FieldURI, which could be a nice features as XML can contain multiple nodes with the same name.

Summa summarum: Semantic Merge can correctly identify the XML as identical (or not) even though elements move, if you can convert the XML into a C# class structure.

๐ŸŒ
Liquid Technologies
liquid-technologies.com โ€บ compare-xml-files
Compare XML Files
Liquid Studio provides a XML Differencing tool enabling you to quickly compare XML files. Features of the XML Diff tool include an XML Aware Differencing Engine based on the Zhang-Shasha algorithm allowing you to ignore whitespace, comments ...
๐ŸŒ
SourceForge
diffxml.sourceforge.net
diffxml - XML Diff and Patch Utilities
diffxml & patchxml: Tools for comparing and patching XML files ยท The standard Unix tools diff and patch are used to find the differences between text files and to apply the differences. These tools operate on a line by line basis using well-studied methods for computing the longest common ...
๐ŸŒ
LambdaTest
lambdatest.com โ€บ home โ€บ free tools โ€บ xml compare
XML Compare - XML Diff Online Tool | LambdaTest
Compare XML files easily with this free online tool. Highlight XML differences quickly for fast analysis. Perfect for comparing two XML files with accuracy and speed.
๐ŸŒ
Stylus Studio
stylusstudio.com โ€บ xml-diff.html
XML Diff Tool
The bottom right of this illustration ... you to compare entire directories. The XML Diff tool is integrated with the XML Tree View and the XML Text View of Stylus Studioยฎ's XML Editor, and switching views is just a matter of choosing a tab at the bottom of the editing screen.
๐ŸŒ
ExtendsClass
extendsclass.com โ€บ xml-diff.html
XML diff - Compare xml online
There are several free online tools that can help you with this, such as Flexter XML to SQL online. ... You can report a bug or give feedback by adding a comment (below) or by clicking "Contact me" link (at the top right hand corner of the page). Comments ...
๐ŸŒ
Altova
altova.com โ€บ diffdog
DiffDog Diff/Merge Tool | Altova
As MusicXML became more popular, ... testing tool that we had long sought for our MusicXML projects.โ€ ... Download a free 30 day trial of Altova DiffDog now!...
๐ŸŒ
GitHub
github.com โ€บ Shoobx โ€บ xmldiff
GitHub - Shoobx/xmldiff: A library and command line utility for diffing xml
A library and command line utility for diffing xml - Shoobx/xmldiff
Starred by 226 users
Forked by 53 users
Languages ย  Python 98.7% | Python 98.7%