Chiaramente ho bisogno di (a) convertire entrambe le stringhe in canonical XML o (b) confrontare i loro alberi di analisi. Quanto segue non funziona perché l'oggetto documento restituito non ha un ragionevole valore definito da ==
.Come posso testare l'uguaglianza XML in Ruby?
Nokogiri.XML(doc_a) == Nokogiri.XML(doc_b)
né quanto segue, perché Nokogiri di to_xml
lascia qualche spazio bianco interno:
Nokogiri.XML(doc_a).to_xml == Nokogiri.XML(doc_b).to_xml
Questa è una ragionevole approssimazione di uguaglianza (e lavorerà per la maggior parte dei casi), ma non è proprio così:
Nokogiri.XML(doc_a).to_xml.squeeze(' ') == Nokogiri.XML(doc_b).to_xml.squeeze(' ')
Sto già utilizzando Nokogiri, quindi preferirei seguirlo, ma userò qualsiasi libreria funzioni.
Mi piacerebbe vedere una buona risposta a questo. AFAIK, XML canonico è la tua unica alternativa in questo momento. – Swanand
possibile duplicato di [diff a ruby string o array] (http://stackoverflow.com/questions/80091/diff-a-ruby-string-or-ray) – sawa