XML-сравнение

Мне нужно сравнить два фрагмента xml:

Они семантически эквивалентны, как только мы видим, что атрибут "type" - это QName, а не просто строка. Есть ли инструмент, который может сделать такое сравнение, как только я предоставлю схему? И есть ли такой апи?


person Yaron Naveh    schedule 06.06.2009    source источник
comment
К сожалению, теперь оба дубликата имеют одинаковые голоса друг друга! Пожалуйста, никто не голосует за закрытие этого, сделайте это за другого.   -  person Zifre    schedule 06.06.2009
comment
Это обман множества других вопросов, таких как stackoverflow.com/questions/547399/ и поэтому тоже следует закрыть.   -  person    schedule 06.06.2009
comment
Хорошо, оба они должны быть закрыты. Но другой нужно просто удалить. Это следует оставить для других, спрашивающих другими словами.   -  person Zifre    schedule 06.06.2009
comment
Кто-нибудь, пожалуйста, опознайте обманщиков? Этот: stackoverflow.com/ Questions/547399/ посвящен этому инструменту. Этот, кажется, сосредоточен на программном выполнении сравнения.   -  person Cheeso    schedule 06.06.2009


Ответы (2)


Вероятно, есть много инструментов, которые делают это, один из них — Xml Diff and Path через Загрузки MS XML

Утилита Microsoft XML Diff and Patch может использоваться для сравнения двух XML-документов, а затем исправления исходного документа с учетом различий для создания окончательного документа. Утилита может обнаруживать структурные изменения (такие как перемещение поддерева XML) и может создавать диффграмму Xml Diff Language (диффграмму XDL или просто диффграмму), описывающую различия между двумя XML-документами. Затем диаграмму можно использовать для отображения этих различий или выполнения исправления с помощью инструмента XML Patch.

XML Diff выполняет сравнение XML-документов на основе XML, в отличие от обычного лексического сравнения. Следовательно, это

Игнорирует атрибуты заказа. Игнорирует незначащие пробелы. Не различает пустой элемент () и элемент без содержимого (). Не заботится о кодировке документа.

Инструменты можно использовать через строку cmd и API.

person Scott Weinstein    schedule 06.06.2009

Вы можете загрузить инструмент Xmldiffpatch.exe. из статьи MSDN "Использование XML Diff and Patch Tool в ваших приложениях "

person Dmitry Pavlov    schedule 15.12.2011