我需要比较两个 xml 文件并在 html 报告中显示差异。为了做到这一点,我安装了 ruby gem Diffy(以及 Diffy 文档指示的 gems rspec 和 diff-lcs),但它似乎无法正常工作,因为没有返回差异。
我有两个要比较的 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)
再次没有返回差异。为了弄清楚我的 xml 是否导致了问题,我还尝试为 Diffy 函数提供两个不同的字符串:
puts Diffy::Diff.new("Hello how are you", "Hello how are you\nI'm fine\nThat's great\n")
但是当存在明显差异时,这也没有返回任何内容。
有谁知道问题可能是什么?