Effectively compare XML files for differences
How to effectively compare contents of the XML(VML, RELS, HTML) files with xlCompare
Why xlCompare is XML Diff Tool?
XML files are used to store and transmit arbitrary data. From the first look tool for comparing Excel files has nothing common with XML file comparison. If you look inside the Excel files in XLSX and XLSM format, you find a zip archive with a set of XML files inside. Our primary projects require to analyze the internal data of the Excel files, that is stored as XML. So we've adopted our tool to compare XML files by loading them into the outlined spreadsheet. Next step was an alternate and more native representation of the XML in a form of the tree. xlCompare became XML Diff Tool that brings you the difference between 2 or 3 XML files. We are using XML comparison function regularly in our projects. xlCompare is xml diff tool that was created by developers for developers.
Compare XML files step-by-step
Let's try to compare two XML files and investigate the results.
Start xlCompare application
On the application screen you see two worksheets, that is a bit unusual. Do not take it into account, as this is Excel file comparison tool.
Drop your XML files from the Windows Explorer right into xlCompare window
xlCompare identifies XML data and opens it in the XML viewer. It is absolutely different from the Excel worksheet window.
Now you can browse all the nodes and attributes in your files.
xlCompare uses following coloring rules:
- every element(tag) receives green icon and foreground color
- attribute has a label icon and brown text
- value of the attribute has blue foreground color
- attribute font and value is shown with italic font to increase contrast
- value of the element (not of the attribute) is named #text and has black color
- if your file contains comments, that are shows with green text color, this is default rule for most of the code editors, like Microsoft Visual Studio
After second file is dropped, comparison is started automatically
You don't need to start it manually. However, you can start is using Compare Files command on the Home tab on Ribbon, or using F6 hotkey.
xlCompare notifies you about count of found differences
After closing this message window you are getting to the comparison report.
Highlighting differences in XML files
To point you to the differences found in XML files xlCompare expands ALL elements that contains different sub-elements or different attributes or values.
Like to the XML viewer window comparison results receives following formatting:
Bold element icon
This element contains changes inside in its attributes or subitems. Or this element was added into this file and is not present in the other file.
In additional to icon changed elements receives bold font.
New XML elements
Every new element, that was not found in the other file receives background color in addition to the bold icon and font.
New elements in the left panel are highlighted with green color and new elements in the right panel receive red formatting.
Every changed attribute receives orange background, blue label icon and bold font.
New attribute, that is not present in the corresponding file receives green background color for the left panel and red color for the right panel.
This color scheme is standard for the many file comparators. We are using these colors to highlight changes in the Excel files. You can change them in the options if you prefer to see other colors.
Synchronized XML Trees
xlCompare performs synchronization of compared XML trees. Matching elements are put on the same level. Right panel is a base panel for alignment. If order of the elements doesn't match, order is taken from the right panel.
For every new node corresponding tree receives empty space, where missed element is shown with strike font.
This alignment is ideal for synchronous browsing. You always see matching elements on the same level.
What was changed in value.
Imagine you've got a orange colored attribute, that means that it was changed. How to find what was changed exactly? Should you copy 2 nodes to notepad? No, just put your mouse over this string. xlCompare will give you a tooltip with detailed information about relative path to this element and changed values. If string values was changed xlCompare highlights changed characters in both values.
How to expand and collapse nodes
Both XML trees and expanded and collapsed synchronously. When you expand one element, corresponding element in the other tree is also expanded.
Right click menu allows you to expand all elements in tree or only elements in the specific branch.
To expand specific branch of XML elements you can use Ctrl+Left\Right Arrow keys. This hotkey expands or collapses the whole branch in single click.
List of differences in XML files
Although all found differences are highlighted in the report, xlCompare give you a complete list of all the changes found in XML files.
Use Display Results command on the Home tab on the Ribbon.
On the bottom part of xlCompare you are getting Difference Explorer window.
This is structured list with all differences we've found.
On the left of this list there is a Difference Legend that shows how many differences of each type report contains.
Compare XML files ignoring order of attributes
Is order of the attributes and elements important?
This depends on the usage of your XML files. For most of our projects this is important because it is important for Excel application.
From the other side, it may not be important for you. For example for the options file, that is stored in the XML format order of the elements can be ignored.
How to ignore order of elements.
By default, order of the elements is not ignored. And you are getting green and red lines for the mismatched attributes.
Use Ignore Order push button on the XML tab on the Ribbon.
When this button is pushed – order is ignored.
Below you see examples of the elements compared with order ignored and with order that is important.
Order of xml elements is important
Order of xml elements is ignored
Options for XML comparison
xlCompare has a lot of options that manages comparison of Excel files, but only a few of them are applicable to the XML comparison.
On the Rules tab in the Options you can change for following:
Ignore case in comparing string values.
Ignore specific characters.
View tab in the Options
Synchronize Selection option defines is trees are expended synchronously.
Command Line mode
xlCompare allows to be integrated into the third-party applications that require difference viewer for XML files.
For this purpose, the application has command like interface that is standard for the most of diff tools.
Compare three XML files
xlCompare has an option for 3-way comparison. You can compare three XML files that have the same base version.
Use command 3-Files on the Home tab on the Ribbon. It enabled third panel for 3-rd Excel file.
BASE (common) version is opened in the central panel and used as primary panel to synchronize the compared XML files.
Using xlCompare as viewer for XML files
xlCompare can be used as viewer for XML files.
You can create an association in the Windows Explorer for xlCompare and XML files.
Typically, this is done by using Open With command in the context menu.
Open XML without right panel
After you open XML document from Windows Explorer with xlCompare, you get your file in the Left panel. While right panel is empty and not used, when browsing contents of the XML document.
1. Open Registry Editor
Press Start button and start typing regedit. Windows will suggest you Registry Editor Application.
2. Expand following key
You need to expand tree items in the left panel of Registry Editor.
3. Modify the command
Double click on the (Default) label, and add -one-panel command line switch to the value.
Result should look like this:
"C:\Program Files\Spreadsheet Tools\xlCompare\xlCompare.exe" -one_panel "%1"
Now xlCompare opens your XML file with right panel hidden and looks like any other XML viewer.
What is the # column in XML view
Probably you already noticed that there is an # column in the XML view.
It contains relative order of this element in the parent XML element.
When is it needed? One of our cases:
Imagine that you cell in Excel has style formatting with ID=67.
So, you are opening style.xml and looking for 67-th XF element in the cellXfs branch.
With # column, it is very easy to locate 67-th element in tree.
Hope this example clearly explains importance of this column.
Licensing Terms and Conditions
xlCompare is FREE XML diff tool for personal use. We don't require license if you are using it in your projects. If your xlCompare evaluation version expires, you will be able to compare XML files without any limitations and warnings. Just run the tool the get the results.
If you are using XML compare for your business or going to install it in the corporate environment, please order a license.
Reasons to choose xlCompare
Quick and easy to use solution
This tool was designed to be as easy and convenient to use as possible. Do not spend your time learning its features. Just drop your files and get the results.
Error free solution
Manual comparison has a risk of mistake, that could be negative for your business. xlCompare is a tool, that was tested on the thousands of computers and millions of files. With xlCompare you are protected from errors in the XML file comparison.
xlCompare saves your time and resources
You are spending your time to compare XML files manually or using text comparators, that doesn't show outlined structure. This reflects in wasting your working time and losing productivity, that it the most important resource in the modern time. With xlCompare you will save your time and money.
xlCompare is a robust XML file comparison tool that finds and highlights differences in XML files.
Command line mode and 3-way comparison option makes it perfect for integration into source code control systems as diff viewer for XML files.
In case of any questions, please contact us. Spreadsheet Tools is happy to get your feedback about our software.
Old version of this article, that describes previous version of the XML file comparison is available by this location: