I have a problem. I have a test that needs to assert that one XML document looks exactly like another XML document. I couldn't find a way to compare them as Nokogiri::XML::Documents, so I converted them both to strings with #to_xml and compared the strings. Trouble is, sometimes the attributes one of the nodes are rendered into the string in a different order to the other one, so you get an error of the form: Diff: @@ -5,7 +5,7 @@ <Description/> <Context> <BackgroundLabels> - <Label mode="FILTER" name="included"/> + <Label name="included" mode="FILTER"/> </BackgroundLabels> </Context> <LookAndFeel nonprofit="false"/> (RSpec::Expectations::ExpectationNotMetError) Most annoying. I've seen a couple of RSpec matchers in blog posts that walk and compare XML fragments but I'm surprised there isn't something more concrete that already exists. I feel like I'm missing a way to do it within an XML library, for example. Any clues out there? cheers, Matt email@example.com 07974 430184
on 2011-01-26 16:33
on 2011-01-26 22:03
Aaron Patterson (author of Nokogiri) addressed this issue directly here: http://rubyforge.org/pipermail/nokogiri-talk/2009-... I don't think document comparison was ever implemented in Nokogiri though. Cheers, kam
on 2011-01-31 09:56
I load my XML docs into a hash using Hash#from_xml and then compare the hashes.
on 2011-01-31 23:56
On 31 Jan 2011, at 08:26, Pat Maddox wrote: > I load my XML docs into a hash using Hash#from_xml and then compare the hashes. Bullseye! Thanks Pat. >> <Description/> >> >> _______________________________________________ >> rspec-users mailing list >> firstname.lastname@example.org >> http://rubyforge.org/mailman/listinfo/rspec-users > _______________________________________________ > rspec-users mailing list > email@example.com > http://rubyforge.org/mailman/listinfo/rspec-users cheers, Matt firstname.lastname@example.org 07974 430184