两个XML文档之间的差异ruby on rails

时间:2011-11-02 20:39:38

标签: ruby-on-rails xml

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

1 个答案:

答案 0 :(得分:2)

我可以引用亚伦帕特森的话:

  

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

     
      
  1. 这个名字是一样的吗?
  2.   
  3. 属性怎么样?
  4.   
  5. 名称空间怎么样?
  6.   
  7. 孩子的数量怎么样?
  8.   
  9. 所有的孩子都一样吗?
  10.   
  11. 它的父节点是否相同?
  12.   
  13. 相对于兄弟节点的位置怎么样?
  14.         

    考虑将两个节点添加到同一文档中。他们可以从不   相对于兄弟节点具有相同的位置,因此有两个节点   在文件中不能“平等”。

         

    可以然而比较两个不同的文件。但你需要   当你走两棵树时,自己回答这7个问题。   您对同一性的要求可能与其他要求不同。

         

    我不会反对在Node上实现=〜这样做   比较,但对这些问题非常严格。

         

    你可以这样做:

         

    doc1 = ~doc2#=>真正
        doc2 = ~doc3#=>假

         

    只要它只返回true或false。这听起来怎么样?

         

    - Aaron Patterson http://tenderlovemaking.com/


否则,there are lookarounds

将XML文档加载到Hash#from_xml的哈希值中并比较哈希值。