Лучший способ сравнить 2 XML-документа в.NET [дубликат]

Выполните действия, чтобы исправить ошибку

  1. Проверьте вкладку сети в консоли разработчика браузера, передает ли она данные или нет, если проблема не в интерфейсе пользователя.

    [110 ]
  2. Если это так, тогда проверьте бэкэнд и напечатайте тело запроса, если оно не приходит, то это бэкэнд

9
задан Community 23 May 2017 в 11:46
поделиться

2 ответа

Microsoft предлагает свои инструменты/классы XML Diff здесь. Я лично не использовал его, но это кажется, что запустит Вас:

"При помощи класса XMLDiff программист может определить, отличаются ли эти два файла на самом деле на основе условий, которые важны для их приложения"

Это, кажется, справляется с другим упорядочиванием, интервалом, префиксы пространства имен и т.д.

11
ответ дан 4 December 2019 в 13:05
поделиться

Это - одна из тех проблем, которая кажется, что это будет легким для начала, но чем больше Вы роете, тем больше глубины Вы находите в пространстве задач.

Существует много предсуществовавших инструментов там, которые сделают xml diffs - оба способом GUI (в том же направлении как текстовые различные инструменты), и командная строка управляемые / компоненты (которые являются больше, чем Вы были бы после). XMLDiff является одним таким случаем, как был уже упомянут.

Проблемы запускаются, когда Вы задаете вопросы как - что я хочу, чтобы это произвело? Вы просто хотите код возврата, в котором говорится, являются ли они тем же, или отличающийся (для модульного теста имеет целью, это может на самом деле быть достаточно) - или Вы хотите отчет, который говорит Вам, каковы различия? (могло также быть полезно для модульных тестов, если Вы хотите найти то, что проблема)? Если последний, как Вы хотите ту информацию? Вы хотите расстояние редактирования? Вы хотите, чтобы это интерпретировало числовые значения и сказало Вам различие между ними?

Что относительно упорядочивания узла? Дочерние узлы должны быть в особом порядке - или если они - те же узлы, но в другом порядке что в порядке?

Вы, вероятно, также захотите смочь указать, что выдержать сравнение. Пространства имен должны соответствовать? Действительно ли пробел является значительным где-нибудь? Есть ли определенные узлы, которые Вы всегда хотите проигнорировать (например, атрибут "времени"), или Вы хотите более прекрасное гранулярное управление точно, какие узлы сравнены и которое не делает?

Для числовых сравнений Вы хотите допускать допуски? Для текстовых сравнений (текстовые узлы), пробел в рамках значительного текста? Что относительно капитализации?

И можно продолжить и на (поскольку я сделал в анализе для просто такого проекта, где я недавно работаю).

Каждый инструмент решает эти проблемы до различных градусов и по-разному.

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

Также стоящий размышления о, если Вы действительно хотите обработать случаи, такие как различные упорядочивания узла или игнорирование определенных ответвлений, Вы могли подать заявку, xslt преобразовывают к Вашему тестовому документу перед сравнением, для нормализации его согласно правилам.

5
ответ дан 4 December 2019 в 13:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: