Сравнение XML- Файлы

Можно использовать Инструмент сравнения для сравнения двух текстовых файлов XML. Инструмент обрабатывает результаты в отчет, который можно использовать для исследования различий в файлах. Можно сравнить XML- файлы с текстовым сравнением или иерархическим XML-сравнением.

Вы можете получить доступ к инструменту сравнения XML из браузера Текущей папки, Инструмента сравнения или программно использовать visdiff функция.

Сравнение XML сравнивает файлы с помощью алгоритма «Chawathe», как описано в этой статье:

Обнаружение изменений в иерархически структурированной информации, Сударшан Чавате, Ананд Раджараман и Дженнифер Видом; Конференция СИГМОД, Монреаль, Канада, июнь 1996 года, стр. 493-504.

Настоящий документ конференции основан на работе, опубликованной в 1995 году: см. http://dbpubs.stanford.edu:8090/pub/1995-45.

Отчеты сравнения XML отображаются в инструменте сравнения. Дополнительные сведения о инструменте сравнения см. в разделе Сравнение файлов и папок и слияние файлов.

Отчет сравнения XML показывает иерархическое представление фрагментов двух различающихся XML- файлов. В отчете не отображаются идентичные разделы файлов.

Если файлы идентичны, появляется сообщение об отсутствии различий.

Примечание

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

Обнаружение изменений в анализе Чавата основано на алгоритме оценки. Элементы совпадают, если их счет Chawathe выше порога. Реализация алгоритма Чавата использует шаблон сравнения, который задает пороги.

Выберите XML- Файлы для сравнения

Из браузера текущей папки

Чтобы сравнить два файла из браузера Текущей папки:

  • Для двух файлов в одной папке выберите файлы, щелкните правой кнопкой мыши и выберите Compare Selected Files/Folders.

  • Сравнение файлов в разных папках:

    1. Выберите файл, щелкните правой кнопкой мыши и выберите Compare Against

    2. Выберите второй файл для сравнения в диалоговом окне «Выбор файлов или папок для сравнения».

    3. Выберите Comparison type XML text comparison.

    4. Нажмите Compare.

Инструмент сравнения XML выполняет анализ Chawathe в файлах и отображает отчет в инструменте сравнения. Файл, по которому можно открыть XML Comparison Tool, отображается в правой части отчета.

Для получения дополнительной информации о сравнениях других типов файлов с Инструментом сравнения, таких как текст, MAT или двоичный файл, см. Раздел «Сравнение файлов и папок и слияние файлов».

Сравнение из инструмента сравнения

Сравнение файлов с помощью Инструмент, из MATLAB® панель инструментов, в разделе File, нажмите кнопку Compare. В диалоговом окне выберите файлы для сравнения.

Если файлы, которые вы выбираете для сравнения, сравнивают XML-файлы и вы выбираете XML text comparisonXML Comparison Инструмента выполняет анализ XML- файлов методом Chawathe и генерирует отчет.

Сравнение из командной строки

Чтобы сравнить XML- файлы из командной строки, введите

visdiff(filename1, filename2, 'xml')

где filename1 и filename1 являются XML- файлами.

Тип сравнения изменений

Если вы задаете две XML- файлы для сравнения с помощью Браузера текущей папки или visdiff функция, затем Инструмент выполняет тип сравнения по умолчанию для выбранных файлов. Можно сравнить XML- файлы с текстовым сравнением или иерархическим XML-сравнением.

Чтобы изменить тип сравнения, либо создайте новое сравнение из Инструмент, либо используйте опцию Compare Against из браузера Текущей папки. Тип сравнения можно изменить в диалоговом окне «Выбор файлов или папок для сравнения». Выберите XML text comparison перед нажатием кнопки Compare.

Перемещение по отчету сравнения XML

В отчете сравнения 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 - Свернет все элементы дерева до наиболее компактного представления.

Примечание

Анализ может оказаться невозможным обнаружить совпадения между ранее соответствующими разделами файлов, которые слишком сильно различаются.

Сохранение файлов журнала сравнения в ZIP-файле

Временные файлы сравнения 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,

  1. На вкладке Comparison, в разделе Comparison, выберите Save As > Workspace variable.

    Появится диалоговое окно «Имя входной переменной».

  2. Укажите имя объекта экспорта в диалоговом окне и нажмите кнопку OK. Это действие экспортирует результаты сравнения XML в xmlcomp.Edits объект в рабочей области.

The xmlcomp.Edits объект содержит информацию о сравнении XML, включая имена файлов, примененные фильтры и иерархические узлы, которые отличаются между двумя XML-файлами.

Как создать xmlcomp.Edits объект в командной строке, не открывая Инструмент, введите:

Edits = xmlcomp.compare(a.xml,b.xml) 

Свойство xmlcomp.EditsОписание
FiltersМассив массивов структур фильтра. Каждая структура имеет два поля: Имя и Значение.
LeftFileNameИмя файла слева экспортировано в XML.
LeftRootxmlcomp.Node объект, который ссылается на корень левого дерева.
RightFileNameИмя файла справа экспортировано в XML.
RightRootxmlcomp.Node объект, который ссылается на корень правого дерева.
TimeSavedВремя экспорта результатов в рабочую область.
VersionMathWorks® номер версии xmlcomp.Edits объект.
Свойство xmlcomp.NodeОписание
ChildrenМассив xmlcomp.Node ссылки на дочерние узлы, если таковые имеются.
EditedЛогический - Если Edited = true затем вставляется узел или часть измененной совпадающей пары.
NameИмя узла.
ParametersМассив массивов структур параметров. Каждая структура имеет два поля: Имя и Значение.
Parentxmlcomp.Node ссылка на родительский узел, если таковой имеется.
PartnerЕсли оно совпадает, Partner является xmlcomp.Node ссылка на соответствующий узел партнера в другом дереве. В противном случае пустые [].

Похожие темы