是否有一个Ruby gem可以在HTML文档之间做差异处理?[英] Is there a ruby gem that does diff between HTML documents?

本文是小编为大家收集整理的关于是否有一个Ruby gem可以在HTML文档之间做差异处理?的处理方法,想解了是否有一个Ruby gem可以在HTML文档之间做差异处理?的问题怎么解决?是否有一个Ruby gem可以在HTML文档之间做差异处理?问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

做两个不同的HTML文档的差异与简单地做纯文本相比是一个完全不同的问题.例如,如果我在:

之间进行幼稚的LCS差异
Google</p>

Google</a></p>

DIFF结果不是:

</a>

但是

/a></

我尝试了大多数声称是HTML差异的宝石,但它们似乎只是实现基于文本的LCS差异.考虑到HTML标签时是否有差异?

推荐答案

尝试 samy diffy or ruby​​gems html-diff

其他推荐答案

在大量寻找宝石为我做到这一点之后,我发现我可以简单地进行一个弦,比较两个解析的诺科吉里文档:

def should_match_html(html_text1, html_text2)
  dom1 = Nokogiri::HTML(html_text1)
  dom2 = Nokogiri::HTML(html_text2)
  dom1.to_s.should == dom2.to_s
end

然后,您可以简单地将其添加到您的规格中:

should_match_html expected_html, actual_html

最好的部分是内置的RSPEC匹配器将自动为您提供不匹配线的逐线差异结果.

本文地址:https://www.itbaoku.cn/post/786658.html