Как сравнить два xml файла
Перейти к содержимому

Как сравнить два xml файла

  • автор:

Как сравнить два xml файла

Имеются два xml файла, местная налоговая отчетность, по разным фирмам. один правильный второй не принимается. Считаю, что не хватает каких-то полей или же что-то не сходится. В любом случае, надо бы их сравнить. Просто как текстовики сравнить не могу — поля сильно перемешаны.

(0) Так вроде одинЭсина 8 позволяет сравнивать xml, можеш попробывать в триале какой нить xmlSpay он может на валидность проверять файл

нету восьмерки под рукой. И валидность — это не совсем то, что нужно. Вот когда в семерке МД объединяешь он там сравнивает модули объектов. Мне нужно наподобие такого, только с xml.
Видимо легче самому написать обработку

Документация

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

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

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

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

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

Сравнение XML сообщает об отображении в Инструменте Сравнения. Для получения дополнительной информации об Инструменте Сравнения, смотрите, Сравнивают Файлы и Файлы Слияния и Папки.

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

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

Примечание

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

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

Выбор XML Files to Compare

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

Сравнить два файла от Браузера текущей папки:

  • Для двух файлов в той же папке выберите файлы, щелкните правой кнопкой и выберите Compare Selected Files/Folders.
  • Сравнить файлы в других папках:
  1. Выберите файл, щелкните правой кнопкой и выберите Compare Against
  2. Выберите второй файл, чтобы выдержать сравнение в Выборе файлов или Папках для диалогового окна Comparison.
  3. Выберите Comparison type XML text comparison .
  4. Нажмите Compare.

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

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

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

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

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

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

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

visdiff(filename1, filename2, 'xml')

где filename1 и filename1 XML-файлы.

Изменение типа сравнения

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

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

Навигация по отчету сравнения XML

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

Чтобы продвинуться через различия , используйте вкладку Comparison на панели инструментов. Чтобы переместиться к следующей или предыдущей группе различий, на вкладке Comparison, в разделе Navigate, кликают по кнопкам стрелки, чтобы перейти к предыдущему или следующему различию.

Можно также щелкнуть, чтобы выбрать элементы в иерархических деревьях.

  • Выбранные пункты кажутся подсвеченными в поле.
  • Если выбранный пункт является частью совпадающей пары, это подсвечено в поле в обоих левых и правых деревьях.

Сообщите, что выделение элемента указывает на природу каждого различия можно следующим образом:

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

Когда вы выбираете несопоставленный элемент, он подсвечен в поле в одном дереве только.

Строки без выделения указывают на контейнерный элемент, который содержит другие модифицированные или несопоставленные элементы.

Используйте вкладку Comparison для следующих функций:

  • Обновление Запустите анализ Chawathe снова, чтобы обновить отчет сравнения.
  • Swap Sides — Подкачайте стороны и повторно выполните сравнение. Запускает анализ Chawathe снова.
  • Save As>HTML — Открывает диалоговое окно Save, где можно принять решение сохранить версию для печати отчета сравнения XML. Отчет является неинтерактивным документом HTML различий, обнаруженных алгоритмом Chawathe для печати или архивации записи сравнения.
  • Save As>Workspace Variable — Экспорт сравнение XML заканчивается к рабочей области.
  • В разделе Navigate кликните по кнопкам стрелки (или нажмите клавиши Up или Down) переходить к предыдущему различию или переходить к следующему различию.
  • Compare Selected Parameter — Откройте новый отчет для в настоящее время выбранной пары параметров. Используйте это, когда отчет не сможет отобразить все подробности в панели Параметров, e.g., длинные векторы символов или скрипт.

Используйте средства управления вкладкой View на панели инструментов для следующих функций:

  • Развернуть все Расширяет каждый элемент в дереве.

Совет Щелкните правой кнопкой, чтобы расширить или свернуть иерархию в выбранном древовидном узле.

Примечание

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

Сохранение файлов журнала сравнения в 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. Диалоговое окно Input Variable Name появляется.
  2. Задайте имя для объекта экспорта в диалоговом окне и нажмите OK. Это действие экспортирует результаты сравнения 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 Boolean — если Edited = true затем узел или вставляется или часть модифицированной совпадающей пары.
Name Имя узла.
Parameters Массив массивов структур параметра. Каждая структура имеет два поля, Имя и Значение.
Parent xmlcomp.Node ссылка, чтобы породить узел, если таковые имеются.
Partner Если соответствующий, Partner xmlcomp.Node ссылка на совпадающий узел партнера в другом дереве. В противном случае пустой [] .

Похожие темы

XML-сравнение онлайн

Вставьте свой XML в левое и правое поля, чтобы увидеть различия.

Сравнить XML-файлы

Результат сравнения текстов

[Удаленный текст] и выделены в результирующем документе
Comparison result text

О приложении сравнения XML

XML (расширяемый язык разметки) — универсальный инструмент для иерархической организации и хранения данных. Он позволяет пользователям создавать структуры данных для обмена данными между различными приложениями. XML хорошо подходит для веб-сервисов, файлов конфигурации, хранения данных и т. д.

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

Это бесплатное онлайн-приложение сравнивает документы и отображает разницу XML на вашем устройстве. Это приложение позволяет быстро и точно выполнять сравнение строк онлайн. Сравнение XML онлайн одинаково точно, но может занять больше времени. Мы ценим вашу конфиденциальность, поэтому тексты видны только вам. Приложение работает на любом устройстве, включая смартфоны.

Как сравнить два xml файла

Добрый вечер!
Подскажите, как можно сравнить два XML файла в Excel? может есть готовое решение?
Дополнительно есть файл XSD для проверки файлов.

Пользователь
Сообщений: 3678 Регистрация: 23.12.2012
03.06.2018 16:31:09

сравнить можно и без Excel
и вообще, Excel — не очень подходящий инструмент для сравнения файлов XML (наверняка есть спец программы)

к тому же, действие СРАВНИТЬ не подразумевает какого-то изменения файлов, или вывода отчета,
потому, не понятно, что вы хотите получить в результате

Пользователь
Сообщений: 193 Регистрация: 01.01.1970
03.06.2018 16:48:50

А можно сделать карту XML (используя XSD) и потом загрузить два файл XML?
В итоге я хожу получить как бы два столбца со значениями из XML, и сравнить содержимое ячеек.

Готовую программу для этого не нашел.

Изменено: lorents — 03.06.2018 16:49:13
Пользователь
Сообщений: 11922 Регистрация: 22.12.2012
Excel 2016, 365
03.06.2018 17:45:35

Цитата
lorents написал:
А можно сделать карту XML (используя XSD)

Для начала стоит почитать и выяснить, что карта XML = XSD.

Цитата
lorents написал:
В итоге я хожу получить как бы два столбца

Как вы это получите и что это даст?
Пусть тэг node1 с атрибутом attr1 равным 5 в первом файле является дочерним к тэгу parent1, а во втором parent2. Далее, пусть тэг node2 с атрибутом attr2 равным 5 в первом файле является дочерним к тэгу parent2, а во втором parent1. Как вы собираетесь это учитывать в этих как-бы столбиках? Или в этом случае файлы равны?
Может стоит почитать для начала литературу по XML, XSD, а потом когда придёт понимание — что это такое задавать вопросы?
Прямого инструмента сравнения в Excel нет. Косвенно её можно решить в рамках чёткого описания — что означает равенство двух XML файлов.

Пользователь
Сообщений: 193 Регистрация: 01.01.1970
03.06.2018 17:49:15

Цитата
Андрей VG написал:
Или в этом случае файлы равны?

Нет файлы могут быть не равны.

в XSD все поля, которые могут быть вообще. Т.е. была идея сделать карту XML, а потом вставлять в нее значения из загруженных XML и сравнивать.

Не буду отрицать моих знаний крайне мало в данной области.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *