Najwyraźniej muszę (a) przekonwertować oba łańcuchy na canonical XML lub (b) porównać ich parsowania. Poniższe czynności nie działają, ponieważ obiekt dokumentu, który został zwrócony, nie ma zdefiniowanego sensownego ==
.Jak przetestować równość XML w Ruby?
Nokogiri.XML(doc_a) == Nokogiri.XML(doc_b)
ani też zwolenników, ponieważ Nokogiri na to_xml
pozostawia pewną wewnętrzną spacje:
Nokogiri.XML(doc_a).to_xml == Nokogiri.XML(doc_b).to_xml
jest to rozsądne przybliżenie równości (i będzie pracować dla większości przypadków), ale to nie do końca prawda:
Nokogiri.XML(doc_a).to_xml.squeeze(' ') == Nokogiri.XML(doc_b).to_xml.squeeze(' ')
Używam już Nokogiri, więc wolałbym go trzymać, ale użyję dowolnej biblioteki.
Chciałbym zobaczyć dobrą odpowiedź na to. AFAIK, kanoniczny XML to twoja jedyna alternatywa w tej chwili. – Swanand
możliwy duplikat [diff a ruby string or array] (http://stackoverflow.com/questions/80091/diff-a-ruby-string-or-array) – sawa