diff-xml Gem Version

Inspired by the equivalent-xml gem, I wanted a way to get the differences between the two xmls, instead of just checking to see that there were differences, this is an alternative method I came up with, and I will add as I work on it, as it is still in its infancy.

Disclaimer

This is an alternate method to a project I was working on, as such, there are no promises that it is the most efficient way to find the differences.

Installation

Add this line to your application's Gemfile:

gem 'diffxml'

And then execute:

$ bundle

Or install it yourself as:

$ gem install diffxml

Usage

Require the gem with:

require 'DiffXML'

This will be fixed in an update to allow a proper require

Pass two xml documents to the gem using

DiffXML.compareXML(doc1, doc2)

the returned value will be an array with the XPaths of all nodes that were not matched.

To Do

  • Plans to return the values of both nodes that are at the XPath in the array, as well as the XPath location are in the works.
  • General upkeep and a more rigorous test set are also planned.
  • RDoc implementation for documentation.
  • optimize searches
  • Add ignore capabilities for XPaths
  • Refactor Utility methods into seperate file

Known Issues

  • With large XML documents, specifically with tested documents over 1500 elements, but possibly fewer, the gem will reach a point where it cannot allocate memory.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/pbubnar/diffxml.