Можно использовать Инструмент сравнения для сравнения двух текстовых файлов XML. Инструмент обрабатывает результаты в отчет, который можно использовать для исследования различий в файлах. Можно сравнить XML- файлы с текстовым сравнением или иерархическим XML-сравнением.
Вы можете получить доступ к инструменту сравнения XML из браузера Текущей папки, Инструмента сравнения или программно использовать visdiff
функция.
Сравнение XML сравнивает файлы с помощью алгоритма «Chawathe», как описано в этой статье:
Обнаружение изменений в иерархически структурированной информации, Сударшан Чавате, Ананд Раджараман и Дженнифер Видом; Конференция СИГМОД, Монреаль, Канада, июнь 1996 года, стр. 493-504. |
Настоящий документ конференции основан на работе, опубликованной в 1995 году: см. http://dbpubs.stanford.edu:8090/pub/1995-45
.
Отчеты сравнения XML отображаются в инструменте сравнения. Дополнительные сведения о инструменте сравнения см. в разделе Сравнение файлов и папок и слияние файлов.
Отчет сравнения XML показывает иерархическое представление фрагментов двух различающихся XML- файлов. В отчете не отображаются идентичные разделы файлов.
Если файлы идентичны, появляется сообщение об отсутствии различий.
Примечание
Возможно, анализ не сможет обнаружить совпадения между ранее соответствующими разделами файлов, которые слишком сильно различаются.
Обнаружение изменений в анализе Чавата основано на алгоритме оценки. Элементы совпадают, если их счет Chawathe выше порога. Реализация алгоритма Чавата использует шаблон сравнения, который задает пороги.
Чтобы сравнить два файла из браузера Текущей папки:
Для двух файлов в одной папке выберите файлы, щелкните правой кнопкой мыши и выберите Compare Selected Files/Folders.
Сравнение файлов в разных папках:
Выберите файл, щелкните правой кнопкой мыши и выберите Compare Against
Выберите второй файл для сравнения в диалоговом окне «Выбор файлов или папок для сравнения».
Выберите Comparison type
XML text comparison.
Нажмите Compare.
Инструмент сравнения XML выполняет анализ Chawathe в файлах и отображает отчет в инструменте сравнения. Файл, по которому можно открыть XML Comparison Tool, отображается в правой части отчета.
Для получения дополнительной информации о сравнениях других типов файлов с Инструментом сравнения, таких как текст, MAT или двоичный файл, см. Раздел «Сравнение файлов и папок и слияние файлов».
Сравнение файлов с помощью Инструмент, из MATLAB® панель инструментов, в разделе File, нажмите кнопку Compare. В диалоговом окне выберите файлы для сравнения.
Если файлы, которые вы выбираете для сравнения, сравнивают XML-файлы и вы выбираете XML text comparison
XML Comparison Инструмента выполняет анализ XML- файлов методом Chawathe и генерирует отчет.
Чтобы сравнить XML- файлы из командной строки, введите
visdiff(filename1, filename2, 'xml')
где filename1
и filename1
являются XML- файлами.
Если вы задаете две XML- файлы для сравнения с помощью Браузера текущей папки или visdiff
функция, затем Инструмент выполняет тип сравнения по умолчанию для выбранных файлов. Можно сравнить XML- файлы с текстовым сравнением или иерархическим XML-сравнением.
Чтобы изменить тип сравнения, либо создайте новое сравнение из Инструмент, либо используйте опцию Compare Against из браузера Текущей папки. Тип сравнения можно изменить в диалоговом окне «Выбор файлов или папок для сравнения». Выберите XML text comparison
перед нажатием кнопки Compare.
В отчете сравнения XML отображаются только изменения. Отчет является иерархическим представлением различий между двумя XML- текстовые файлы и не является иерархическим представлением исходного XML- данных.
Чтобы пройти через различия, используйте вкладку Comparison на панели инструментов. Чтобы перейти к следующей или предыдущей группе различий, на вкладке Comparison, в разделе Navigate, нажмите кнопки со стрелами, чтобы перейти к предыдущему или следующему отличию.
Можно также щелкнуть для выбора элементов в иерархических деревьях.
Выбранные элементы отображаются подсвеченными в поле.
Если выбранный элемент является частью совпадающей пары, он подсвечивается в поле как на левом, так и на правом дереве.
Подсветка элемента отчета указывает на характер каждого различия следующим образом:
Тип элемента отчета | Выдвижение на первый план | Примечания |
---|---|---|
Измененный | Фиолетовый | Измененные элементы являются совпадающими парами, которые различаются между этими двумя файлами. При выборе измененного элемента он подсвечивается в поле на обоих деревьях. |
Вставленный | Синий | Когда вы выбираете несопоставленный элемент, он подсвечивается в поле только в одном дереве. |
Удаленный | Желтый | |
Контейнер | Ничего | Строки без подсветки указывают на элемент контейнера, содержащий другие измененные или несопоставленные элементы. |
Используйте вкладку Comparison для следующих функций:
Refresh - еще раз выполните анализ Chawathe, чтобы обновить отчет сравнения.
Swap Sides - Смените стороны и повторите сравнение. Снова запускает анализ Чавата.
Save As > HTML - открывает диалоговое окно Сохранить (Save), в котором можно сохранить версию отчета сравнения XML для печати. Отчет является неинтерактивным HTML с различиями, обнаруженными алгоритмом Chawathe для печати или архивирования записи сравнения.
Save As > Workspace Variable - Экспорт результатов сравнения XML в рабочую область.
В Navigate разделе нажмите кнопки со стрелами (или нажмите клавиши Вверх или Вниз), чтобы перейти к предыдущему различию или перейти к следующему различию.
Compare Selected Parameter - Откройте новый отчет для выбранной на данный момент пары параметров. Используйте это, когда отчет не может отобразить все детали на панели Parameters, например, длинные векторы символов или скрипт.
Используйте элементы управления вкладки View на панели инструментов для следующих функций:
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,
На вкладке Comparison, в разделе Comparison, выберите Save As > Workspace variable.
Появится диалоговое окно «Имя входной переменной».
Укажите имя объекта экспорта в диалоговом окне и нажмите кнопку OK. Это действие экспортирует результаты сравнения XML в xmlcomp.Edits
объект в рабочей области.
The 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 ссылка на соответствующий узел партнера в другом дереве. В противном случае пустые [] . |