Мне нужно сравнить два XML-файла и отобразить различия в HTML-отчете.Для этого я установил рубиновый гем Diffy (и гемы rspec и diff-lcs, как указано в документации Diffy), но, похоже, он не работает должным образом, поскольку различия не возвращаются.
У меня есть два файла xmls, которые я хочу сравнить.
Один файл XML:
<?xml version="1.0" encoding="UTF-8"?>
<SourceDetails>
<Origin>Origin</Origin>
<Identifier>Identifier</Identifier>
<Timestamp>2001-12-31T12:00:00</Timestamp>
</SourceDetails>
<AsOfDate>2001-01-01</AsOfDate>
<Instrument>
<ASXExchangeSecurityIdentifier>ASX</ASXExchangeSecurityIdentifier>
</Instrument>
<Rate>0.0</Rate>
Второй файл XML:
<?xml version="1.0" encoding="UTF-8"?>
<SourceDetails>
<Origin>FEED</Origin>
<Identifier>IR</Identifier>
<Timestamp>2017-01-01T02:11:01Z</Timestamp>
</SourceDetails>
<AsOfDate>2017-01-02</AsOfDate>
<Instrument>
<CommonCode>GB0</CommonCode>
</Instrument>
<Rate>0.69</Rate>
Когда я предоставляю два файла XMLв качестве аргументов функции diffy:
puts Diffy::Diff.new('xmldoc1', 'xmldoc2', :source => 'files').to_s(:html)
никакие различия не возвращаются.Когда я сохраняю два xml-файла в переменных String и предоставляю эти переменные в качестве аргументов функции Diffy:
puts Diffy::Diff.new(doc1, doc2, :include_plus_and_minus_in_html => true).to_s(:html)
снова никакие различия не возвращаются.Чтобы выяснить, были ли мои xmls причиной проблемы, я также попытался предоставить две разные строки для функции Diffy:
puts Diffy::Diff.new("Hello how are you", "Hello how are you\nI'm fine\nThat's great\n")
, но это также ничего не вернуло, когда есть явные различия.
Кто-нибудь знает, в чем может быть проблема?