Как сравнить два XML-файла
- Вставьте или перетащите исходный XML слева, а изменённый — справа. Результат обновляется по мере ввода.
- Выберите, что игнорировать: пробелы в тексте, комментарии или порядок атрибутов. Опция Скрыть неизменённые строки делает длинные документы компактнее.
- Изучите сводку добавленных, удалённых и изменённых строк, затем просмотрите различия в двух колонках. Кнопка Поменять местами меняет направление сравнения.
Что не учитывается при сравнении XML
| Различие | Игнорируется |
|---|---|
| Отступы и переносы строк между элементами | Всегда |
| Одинарные или двойные кавычки вокруг значений атрибутов | Всегда |
<a/> или <a></a> | Всегда |
| Лишние пробелы и переносы строк внутри текста | При включённой опции Игнорировать пробелы в тексте (включена по умолчанию) |
| Комментарии | При включённой опции Игнорировать комментарии |
| Порядок атрибутов | При включённой опции Игнорировать порядок атрибутов (включена по умолчанию) |
| Порядок элементов | Никогда — перемещённый элемент отображается как удалённый и добавленный |
Префиксы пространств имён, & или &, CDATA или экранированный текст | Никогда — сравниваются в том виде, как записаны |
Как работает сравнение
Оба документа разбираются парсером, нормализуются с учётом выбранных настроек и записываются с одинаковым отступом в два пробела. Полученные строки сравниваются алгоритмом Майерса (Myers diff) — тем же методом, который по умолчанию использует git diff. Заменённые строки объединяются в пары как изменённые, а длинные участки без изменений можно свернуть. Поскольку результат относится к этим отформатированным версиям, номера строк могут отличаться от ваших исходных файлов.
Часто задаваемые вопросы
Важен ли порядок элементов?
Да. Элементы в XML упорядочены, поэтому перемещённый элемент отображается как удалённый в одном месте и добавленный в другом. Игнорировать можно только порядок атрибутов, поскольку в XML он не имеет значения.
Почему файлы различаются, хотя выглядят одинаково?
Проверьте настройки: комментарии, порядок атрибутов и пробелы внутри текста считаются различиями, если соответствующая опция выключена. Префиксы пространств имён и варианты записи сущностей, например & и &, тоже сравниваются в точности как записаны.
Можно ли сравнить XML с синтаксическими ошибками?
Нет. Сначала оба документа должны пройти разбор. Если в одном из них есть ошибка, она показывается под соответствующей стороной с номером строки и столбца — исправьте её там же или в валидаторе XML.
Загружаются ли мои данные на сервер?
Нет. Сравнение выполняется в вашем браузере, на сервер ничего не отправляется.