Для сравнения пары текстовых XML-файлов можно использовать инструмент сравнения. Инструмент обрабатывает результаты в отчет, который можно использовать для анализа различий файлов. Можно сравнить XML-файлы со сравнением текста или иерархическим сравнением XML.
Доступ к инструменту сравнения XML можно получить из браузера текущей папки, инструмента сравнения или программным способом с помощью visdiff функция.
Сравнение XML сравнивает файлы с использованием алгоритма «Chawathe», как описано в этой статье:
| Обнаружение изменений в иерархически структурированной информации, Сударшан Чавате, Ананд Раджараман и Дженнифер Видом; Конференция SIGMOD, Монреаль, Канада, июнь 1996 года, стр. 493-504. |
Настоящий документ Конференции основан на работе, опубликованной в 1995 году: см. http://dbpubs.stanford.edu:8090/pub/1995-45.
Отчеты сравнения XML отображаются в средстве сравнения. Дополнительные сведения об инструменте сравнения см. в разделе Сравнение файлов и папок и объединение файлов.
Отчет сравнения XML показывает иерархическое представление частей двух XML-файлов, которые различаются. В отчете не отображаются идентичные разделы файлов.
Если файлы идентичны, появится сообщение об отсутствии различий.
Примечание
Анализ может оказаться невозможным для обнаружения совпадений между ранее соответствующими разделами файлов, которые слишком сильно разошлись.
Обнаружение изменений в анализе Chawathe основано на алгоритме оценки. Элементы совпадают, если их оценка Chawathe выше порогового значения. Реализация алгоритма Чавате использует шаблон сравнения, который определяет пороги.
Чтобы сравнить два файла из браузера текущей папки:
Для двух файлов в одной папке выберите файлы, щелкните правой кнопкой мыши и выберите Сравнить выбранные файлы/папки.
Чтобы сравнить файлы в разных папках:
Выберите файл, щелкните правой кнопкой мыши и выберите Сравнить с
Выберите второй файл для сравнения в диалоговом окне «Выбор файлов или папок для сравнения».
Выберите тип сравнения
XML text comparison.
Щелкните Сравнить (Compare).
Инструмент сравнения XML выполняет анализ Chawathe для файлов и отображает отчет в инструменте сравнения. Щелкните правой кнопкой мыши файл, чтобы открыть инструмент сравнения XML, который отображается в правой части отчета.
Дополнительные сведения о сравнениях других типов файлов с помощью инструмента сравнения, таких как текст, MAT или двоичный файл, см. в разделе Сравнение файлов и папок и объединение файлов.
Чтобы сравнить файлы с помощью инструмента сравнения, на панели инструментов MATLAB ® в разделе Файл (File) нажмите кнопку Сравнить (Compare). В диалоговом окне выберите файлы для сравнения.
Если выбранные для сравнения файлы являются XML-файлами, выберите XML text comparison, инструмент сравнения XML выполняет анализ Chawathe XML-файлов и создает отчет.
Для сравнения XML-файлов из командной строки введите
visdiff(filename1, filename2, 'xml')
где filename1 и filename1 являются XML-файлами.
Если указать два XML-файла для сравнения с помощью обозревателя текущих папок или visdiff затем инструмент сравнения выполняет тип сравнения по умолчанию для выбранных файлов. Можно сравнить XML-файлы со сравнением текста или иерархическим сравнением XML.
Чтобы изменить тип сравнения, создайте новое сравнение с помощью инструмента сравнения или используйте параметр «Сравнить с» в браузере «Текущая папка». Тип сравнения можно изменить в диалоговом окне «Выбор файлов или папок для сравнения». Выбрать XML text comparison прежде чем щелкнуть Сравнить (Compare).
В отчете о сравнении XML отображаются только изменения. Отчет представляет собой иерархическое представление различий между двумя текстовыми файлами XML и не является иерархическим представлением исходных данных XML.
Чтобы преодолеть различия, используйте вкладку Сравнение (Comparison) на панели инструментов. Чтобы перейти к следующей или предыдущей группе различий, на вкладке Сравнение в разделе Навигация нажмите кнопки со стрелками для перехода к предыдущей или следующей разнице.
Можно также щелкнуть, чтобы выбрать элементы в иерархических деревьях.
Выбранные элементы отображаются подсвеченными в рамке.
Если выбранный элемент является частью совпадающей пары, он подсвечивается в рамке в левом и правом деревьях.
Выделение элемента отчета указывает на характер каждого различия следующим образом:
| Тип элемента отчета | Выдвижение на первый план | Примечания |
|---|---|---|
| Измененный | Фиолетовый | Измененные элементы представляют собой пары совпадений, различающиеся между двумя файлами. При выборе измененного элемента он подсвечивается в поле в обоих деревьях. |
| Вставленный | Синий | При выборе несопоставленного элемента он подсвечивается в рамке только в одном дереве. |
| Удаленный | Желтый | |
| Контейнер | Ничего | Строки без выделения указывают элемент контейнера, который содержит другие измененные или несопоставленные элементы. |
Используйте вкладку Сравнение (Comparison) для следующих функций.
Обновить (Refresh) - повторное выполнение анализа Chawathe для обновления отчета сравнения.
Заменить стороны (Swap Sides) - замена сторон и сравнение повторных запусков. Снова запускает анализ Chawathe.
Сохранить как > HTML - открывает диалоговое окно Сохранить, в котором можно сохранить версию для печати отчета о сравнении XML. Отчет представляет собой неинтерактивный HTML-документ различий, обнаруженных алгоритмом Chawathe для печати или архивирования записи сравнения.
Сохранить как > Переменная рабочей области - экспортировать результаты сравнения XML в рабочую область.
В разделе Навигация (Navigate) нажмите кнопки со стрелками (или клавиши вверх или вниз), чтобы перейти к предыдущей разнице или перейти к следующей разнице.
Сравнить выбранный параметр (Compare Selected Parameter) - открытие нового отчета для выбранной в данный момент пары параметров. Используется, когда отчет не может отобразить все подробные данные на панели «Параметры», например, длинные векторы символов или сценарий.
Используйте элементы управления вкладки «Вид» на панели инструментов для следующих функций:
Развернуть все (Expand All) - разворачивает все элементы дерева.
Совет
Щелкните правой кнопкой мыши, чтобы развернуть или свернуть иерархию в пределах выбранного узла дерева.
Свернуть все (Collapse All) - сворачивает все элементы дерева до максимально компактного вида.
Примечание
Анализ может оказаться невозможным для обнаружения совпадений между ранее соответствующими разделами файлов, которые слишком сильно разошлись.
Временные файлы сравнения XML накапливаются в . Эти временные файлы удаляются при закрытии связанного отчета сравнения.tempdir/MatlabComparisons/XMLComparisons/TempDirs/
Временные файлы (например, файлы журналов), созданные во время сравнения XML, можно заархивировать для совместного использования или архивирования. Во время открытия отчета сравнения введите:
xmlcomp.zipTempFiles('c:\work\myexportfolder')
Конечная папка должна существовать. Выходные данные содержат имя zip-файла:
Created the zipfile "c:\work\myexportfolder\20080915T065514w.zip"
Для просмотра файла журнала последнего сравнения в редакторе MATLAB введите:
xmlcomp.showLogFile
Чтобы экспортировать результаты сравнения XML в базовую рабочую область MATLAB,
На вкладке Сравнение в разделе Сравнение выберите Сохранить как > Переменная рабочего пространства.
Откроется диалоговое окно Имя входной переменной (Input Variable Name).
Укажите имя объекта экспорта в диалоговом окне и нажмите кнопку ОК. Это действие экспортирует результаты сравнения XML в xmlcomp.Edits в рабочей области.
xmlcomp.Edits содержит информацию о сравнении XML, включая имена файлов, применяемые фильтры и иерархические узлы, различающиеся между двумя XML-файлами.
Создание xmlcomp.Edits в командной строке, не открывая инструмент сравнения, введите:
Edits = xmlcomp.compare(a.xml,b.xml)
Собственность xmlcomp.Edits | Описание |
|---|---|
Filters | Массив массивов структур фильтров. Каждая структура имеет два поля: Имя и Значение. |
LeftFileName | Имя левого файла, экспортированного в XML. |
LeftRoot | xmlcomp.Node объект, который ссылается на корень левого дерева. |
RightFileName | Имя правого файла, экспортированного в XML. |
RightRoot | xmlcomp.Node объект, который ссылается на корень правого дерева. |
TimeSaved | Время, когда результаты экспортируются в рабочую область. |
Version | Номер версии для MathWorks ® xmlcomp.Edits объект. |
Собственность xmlcomp.Node | Описание |
|---|---|
Children | Массив xmlcomp.Node ссылки на дочерние узлы, если таковые имеются. |
Edited | Логическое значение - если Edited = true затем узел вставляется или является частью измененной совпадающей пары. |
Name | Имя узла. |
Parameters | Массив массивов структуры параметров. Каждая структура имеет два поля: Имя и Значение. |
Parent | xmlcomp.Node ссылка на родительский узел, если имеется. |
Partner | При совпадении Partner является xmlcomp.Node ссылка на сопоставленный узел партнера в другом дереве. В противном случае пусто []. |