我们有3个不同的程序/介质,其中生成相同类型的XML,其值和元素的顺序不同。
我应该从那些XML中选择特定元素,并且需要检查每个子元素/元素/属性是否匹配。我使用了一个深度相等的功能,它也给了我正确的输出,但这并不是100%保证。因为有时节点的排序可能会有所不同,也可能是属性也是如此(仅按顺序)。
有谁知道如何以深度相等的方法比较两个节点而不必担心序列/顺序?
如果需要进一步的信息以便提供答案,请告诉我。
答案 0 :(得分:2)
默认情况下,元素序列在XML中是有意义的,因此深度相等的函数对序列敏感。没有内置的序列不敏感的等价物;这是某些词汇表中采用的特定习惯用法,但足以支持它的特殊情况不属于通用库。
解决您的直接问题:对于孩子的顺序无关紧要的元素,规范化顺序(例如以某种确定的方式排序),然后使用深度相等。