2

我们有 3 个不同的程序/媒体,其中生成了相同类型的 XML,这些 XML 的值和元素的顺序各不相同。

我应该从这些 XML 中选择特定元素,并且需要检查每个子/元素/属性是否匹配。我使用了一个 deep-equal 函数,它也给了我适当的输出,但这并不是 100% 保证的。因为有时节点的顺序可能会有所不同,这是允许的以及属性也是如此(仅按顺序)。

有谁知道如何以 deep-equal 方法的方式比较两个节点而不用担心序列/顺序?

请让我知道是否需要更多信息才能提供答案。

4

1 回答 1

2

默认情况下,元素的顺序在 XML 中是有意义的,所以像 deep-equal 这样的函数是顺序敏感的。没有内置的序列不敏感等价物;这是某些词汇表中采用的特殊习语,但支持它的函数不属于通用库就足够了。

为了解决您的直接问题:对于孩子的顺序无关紧要的元素,规范化顺序(例如以某种确定的方式排序),然后使用深度相等。

于 2013-04-26T23:19:21.457 回答