有什么简单的方法可以比较两个xml文件的不同之处?
我查看了Hpricot和Nokogiri,但没有找到好的比较方法。我也看过类似diffxml这样的unix工具,但宁愿使用ruby中的工具。
有人有任何想法吗?
我发现使用Java库 XMLUnit 比使用任何本地解决方案更容易。
require 'java'
require '/usr/share/java/xmlunit.jar'
java_import org.custommonkey.xmlunit.Diff
puts Diff.new("<a></a>", "<a/>").similar
puts Diff.new("<a/>", "<b/>").similar
require 'rubygems'
require 'xmlsimple'
require 'diff'
def regularize(xml)
XmlSimple.xml_out(XmlSimple.xml_in(xml))
end
def diff_xml(a,b)
Diff.new(regularize(a).split("\n"), regularize(b).split("\n"))
end
puts diff_xml("<doc><a/></doc>", "<doc><a></a></doc>").diffs.empty?
puts diff_xml("<doc><a/></doc>", "<doc><b/></doc>").diffs.empty?