gpt4 book ai didi

ruby - 如何比较两个 XML 文件并使用 Ruby 显示 html 格式的差异

转载 作者:太空宇宙 更新时间:2023-11-03 18:04:16 25 4
gpt4 key购买 nike

我的 PC 上存储了一系列 xml 文件。我使用 gem Nokogiri 存储了这些文件的内容。我需要一次比较这些 xml 的两个内容。如果 xml 文件之间存在差异,我想在漂亮的 html 报告中显示这些差异,以供其他人查看。

有谁知道如何做到这一点?

我正在比较的第一个 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>

最佳答案

使用 Diffy 的替代解决方案做比较。这是一个平面字符串比较,但它确实有一个 html 格式的输出。

require 'diffy'

puts Diffy::Diff.new('./docOne.xml', './docTwo.xml', :source => 'files').to_s(:html)
#Example output
<div class="diff">
<ul>
<li class="unchanged"><span>&lt;root&gt;</span></li>
<li class="del"><del>test</del></li>
<li class="unchanged"><span>&lt;foo&gt;&lt;/foo&gt;</span></li>
<li class="ins"><ins>&lt;bar&gt;&lt;/bar&gt;</ins></li>
<li class="unchanged"><span>&lt;/root&gt;</span></li>
</ul>
</div>

关于ruby - 如何比较两个 XML 文件并使用 Ruby 显示 html 格式的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52371095/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com