[英]Difference between two XML documents ruby on rails
是否有可能在ruby中的两个XML文档中确定差异(例如,新元素,已修改元素,已删除元素...)?
我可以引用亚伦帕特森的话:
就XML文档而言,没有两个节点是平等的。 文档中的每个节点都是不同的。 每个节点都有许多要比较的属性:
- 这个名字是一样的吗?
- 属性怎么样?
- 命名空间怎么样?
- 孩子的数量怎么样?
- 所有的孩子都一样吗?
- 它的父节点是否相同?
- 它相对于兄弟节点的位置怎么样?
考虑将两个节点添加到同一文档中。 它们永远不会相对于兄弟节点具有相同的位置,因此文档中的两个节点不能“相等”。
但是,您可以比较两个不同的文档。 但是当你走在两棵树上时,你需要自己回答这7个问题。 您对同一性的要求可能与其他要求不同。
我不反对在节点上实现一个=〜做这个比较,但对这些问题非常严格。
你可以这样做:
doc1 = ~doc2#=> true
doc2 = ~doc3#=> false只要它只返回真或假。 听起来怎么样?
- Aaron Patterson http://tenderlovemaking.com/
否则, 有一些看法 :
使用Hash#from_xml
将XML文档加载到哈希中并比较哈希值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.