两个XML文档ruby on rails的区别



是否有可能确定差异(例如:新元素,修改元素,删除元素…)在两个XML文档中的ruby?

请允许我引用Aaron Patterson的话:

就XML文档而言,没有两个节点是相等的。文档中的每个节点都是不同的。每个节点都有许多属性比较:

  1. 名称相同吗?
  2. 属性呢?
  3. 名称空间呢?
  4. 孩子的数量呢?
  5. 所有的孩子都一样吗?
  6. 它的父节点相同吗?
  7. 它相对于兄弟节点的位置如何?

考虑在同一个文档中添加两个节点。他们可以永远相对于兄弟节点有相同的位置,因此是两个节点在一个文档中不能是"equal"

可以比较两个不同的文档。但是你需要当你在两棵树上行走时,自己回答这7个问题。您对一致性的要求可能与其他人不同。

我不反对在Node上实现这样的a =~比较,但对那些问题非常严格。

你可以这样做:

doc1 =~ doc2 # => true
Doc2 =~ doc3 # => false

只要它只返回真或假。听起来怎么样?

—Aaron Patterson http://tenderlovemaking.com/


否则,有遍历:

将XML文档加载到具有Hash#from_xml的散列中,并比较散列。

最新更新