nokogiri-diff
Description
nokogiri-diff adds the ability to calculate the differences (added or
removed nodes) between two XML/HTML documents.
Features
- Performs a breadth-first comparison between children nodes.
- Compares XML/HTML Elements, Attributes, Text nodes and DTD nodes.
- Allows calculating differences between documents, or just enumerating the added or removed nodes.
Examples
Enumerate over the the differences between two HTML documents:
require ‘nokogiri/diff’
doc1 = Nokogiri::HTML(‘
one
twodoc2 = Nokogiri::HTML(‘
one
three
doc1.diff(doc2) do |change,node|
puts “#{change} #{node.to_html}”.ljust(30) + node.parent.path
end
#
#
one
two#
one
/div# - two /div
# + /div
# +
three
/div# + id=“1” /div/p[1]
# one /div/p
Only find the added nodes:
doc1.diff(doc2, :added => true) do |change,node|
puts node.to_html.ljust(30) + node.parent.path
end
# /div
#
three
/div# id=“1” /div/p[1]
Only find the removed nodes:
doc1.diff(doc2, :removed => true) do |change,node|
puts node.to_html.ljust(30) + node.parent.path
end
# two /div
Requirements
Install
$ gem install nokogiri-diff
Copyright
Copyright © 2010-2012 Hal Brodigan
See {file:LICENSE.txt} for details.