是否可以在ruby中的两个XML文档中确定差异(例如,新元素,已修改元素,已删除元素...)?
答案 0 :(得分:2)
我可以引用亚伦帕特森的话:
就XML文档而言,没有两个节点是平等的。 文档中的每个节点都是不同的。每个节点都有许多属性 比较:
- 这个名字是一样的吗?
- 属性怎么样?
- 名称空间怎么样?
- 孩子的数量怎么样?
- 所有的孩子都一样吗?
- 它的父节点是否相同?
- 相对于兄弟节点的位置怎么样?
醇>考虑将两个节点添加到同一文档中。他们可以从不 相对于兄弟节点具有相同的位置,因此有两个节点 在文件中不能“平等”。
你可以然而比较两个不同的文件。但你需要 当你走两棵树时,自己回答这7个问题。 您对同一性的要求可能与其他要求不同。
我不会反对在Node上实现=〜这样做 比较,但对这些问题非常严格。
你可以这样做:
doc1 = ~doc2#=>真正
doc2 = ~doc3#=>假只要它只返回true或false。这听起来怎么样?
- Aaron Patterson http://tenderlovemaking.com/
将XML文档加载到Hash#from_xml
的哈希值中并比较哈希值。