Подтвердить что ты не робот

Есть ли простой способ сравнения, если 2 XDocuments равны, игнорируя порядок элементов/атрибутов?

Модуль, тестирующий мой код сериализации. Я обнаружил, что один из них не сработал, потому что у меня были атрибуты, перечисленные в другом порядке (я просто сравниваю значения XDocument.ToString()), и хотя я мог это исправить, для меня это действительно не имеет значения в каком порядке появляются элементы или атрибуты, пока они все там с правильным именем на правильном уровне иерархии. Вероятно, я мог бы написать метод, но мне интересно, есть ли простой способ, который я не знаю.

4b9b3361

Ответ 1

XNode имеет функцию DeepEquals, которая должна делать трюк.

http://msdn.microsoft.com/en-us/library/system.xml.linq.xnode.deepequals.aspx

Обновление:

Похоже, что функция DeepEquals не всегда работает правильно. Возможно, вам лучше реализовать свою собственную процедуру сравнения.

http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=400469

Ответ 3

Попробуйте утилиту Microsoft XML Diff и patch здесь или google "Xml Diff"