显然,我需要(a)将这两个字符串转换为规范XML,或者(b)比较它们的解析树。以下操作不起作用,因为返回的文档对象没有定义合理的==
Nokogiri.XML(doc_a)==Nokogiri.XML(doc_b)
以下内容也没有,因为Nokogiri的to_xml留下了一些内部空白:
Nokogiri.XML(doc_a).to_XML==Nokogiri.XML(doc_b).to_XML
这是一个合理的等式近似值(在大多数情况下都适用),但它并不完全正确:
Nokogiri.XML(doc_a).to_XML.squence(“”)=Nokogiri.XML(doc_b).to_XML.squence(“”)
我已经在使用Nokogiri,所以我更愿意坚持使用它,但我会使用任何可用的库
实际上,有两个很好的基于Nokogiri的库用于检查XML树的等价性,包括等价XML或Nokogiri diff,这可能会有所帮助
我更喜欢等价的xml,因为它提供了更大的灵活性(可能是以严格为代价的?),允许您比较元素顺序或空格,也可以不考虑元素顺序或空格