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

от admin

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

Добрый день, подскажите пожалуйста, как сравнить 2 файла xml, и вывести информацию о изменении.

Есть 2 файла, приведу часть файла о продуктах Майкрософт которые пытаюсь сравнить:

2 файл, с добавленной новой подсетью

В этом и есть разница:

Выполняю такой командой:

Вывод получается таким:

Подскажите пожалуйста, как добиться такого чтобы, вывод показывал вот так:

Буду благодарен за любую помощь.

  • Изменено new guy 1 14 апреля 2017 г. 11:56

Ответы

  • Изменено Kazun Editor 14 апреля 2017 г. 17:47
  • Помечено в качестве ответа new guy 1 17 апреля 2017 г. 14:29

Все ответы

  • Изменено Kazun Editor 14 апреля 2017 г. 17:47
  • Помечено в качестве ответа new guy 1 17 апреля 2017 г. 14:29

Добрый вечер, Kazun.

Благодарю Вас за помощь, спасибо большое !

Добрый вечер, Александр.

Благодарю за Вашу помощь, подскажите пожалуйста, пытаюсь отсылать данные изменения в файле, через E-mail сообщение, сообщение доходит в виде:

Код, который я немного изменил такой:

Отсылку сообщения выполняю командой:

Подскажите пожалуйста, почему в сообщении я вижу лишь подсеть с маской, а название продукта нет ?

How to compare XML files

I have two XML files (XSD) which are generated by some tool.
The tool doesn’t preserve the order of elements so although the content is equal comparing it as text will result as the files are different.
Is there some tool that can sort the elements before comparing and will enable text comparison of the documents? Of course the sorting needs to be done recursively.

Data example:
File A:

5 Answers 5

That post suggests doing a canonical XML sort then doing a diff. The following should work for you if you are on Linux, Mac, or if you have Windows with something like Cygwin installed:

Have a look at Using XSLT to Assist Regression Testing that describe a solution using xslt

mkdev's user avatar

For what it’s worth, I have created a java tool (or kotlin actually) for effecient and configurable canonicalization of xml files.

  • Sort nodes and attributes by name.
  • Remove namespaces (yes — it could — hypothetically — be a problem).
  • Prettyprint the result.

In addition you can tell it to:

  • Remove a given list of node names — maybe you do not want to know that the value of a piece of metadata — say <RequestReceivedTimestamp> has changed.
  • Sort a given list of collections in the context of the parent — maybe you do not care that the order of <Contact> entries in <ListOfFavourites> has changed.

It uses XSLT and does all the above efficiently using chaining.

Limitations

It does support sorting nested lists — sorting innermost lists before outer. But it cannot reliably sort arbitrary levels of recursively nested lists.

If you have such needs you can — after having used this tool — compare the sorted byte arrays of the results. they will be equal if only list sorting issues remain.

Where to get it

You can get it here: XMLNormalize

The XML samples are fundamentally different. Even though the content and the hierarchy may be identical the relationships between peers is different. When XML is parsed it is parsed into a structure called a DOM where relationships between units is very important. If you want to discount the nature of relationships between peer entities then you will likely need custom software. I recommend finding some simple open-source XML aware diff tool and adding the additional requirements that you need. I wrote one at http://prettydiff.com/ but I suggest you look around to see what is available before making a decision, because editing somebody else’s algorithms may require a bit of heavy lifting.

You can use the perl module DifferenceMarkup http://metacpan.org/pod/XML::DifferenceMarkup or the xmldiff pecl.php.net/xmldiff extension in PHP. Both will produce a human readable XML diff document.

    The Overflow Blog
Linked
Related
Hot Network Questions

Subscribe to RSS

To subscribe to this RSS feed, copy and paste this URL into your RSS reader.

Site design / logo © 2023 Stack Exchange Inc; user contributions licensed under CC BY-SA . rev 2023.3.11.43304

By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy.

Как найти отличия в двух файлах XML?

AlexXYZ

Удобно ли будет использовать online инструмент сравнения двух xml-файлов? Их по поиску можно найти.

  • Facebook
  • Вконтакте
  • Twitter
Читать:
Как ждать в c

xml по сути текст, так что тут два варианта

или вы юзаете обычных diff

или вы пишете парсер, грузите данные в массив/таблицу и сравниваете уже там.

Как сравнить два файла в Notepad ++?

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

Простое решение, позволяющее быстро узнать, похож ли набор данных или нет, или иметь обзор различных строк, — это использовать текстовый редактор Notepad ++ в качестве инструмента сравнения текстовых файлов с дополнительным плагином, который можно легко установить из диспетчера плагинов. Это даже работает, чтобы сравнить два файла XML!

Вам также потребуется установить Compare plugin. Для этого перейдите на SourceForge и загрузите последнюю версию плагина. Затем вам просто нужно извлечь скачанный архив в папку установки Notepad ++.

Затем откройте свой 1-й файл, а второй, используя Notepad ++, и когда два файла, которые вы хотите сравнить, будут двумя последними файлами, открытыми в программном обеспечении, начните сравнение с Plugin => Compare => Compare или комбинацией клавиш Alt + D.

После этого ваши файлы будут отображаться с их отличиями: строки удалены (-) и добавлены строки (+). Линии, найденные в обоих файлах, будут отображаться на белом фоне.

Notepad ++ сравнить два XML-файла бесплатно

Инструмент Notepad ++ также позволяет сравнивать два xml-файла. Просто следуйте предыдущим шагам: установка плагинов для сравнения Notepad ++, открытие XML-файла в Notepad plus plus и сравнение их с помощью меню сравнения плагинов Notepad ++.

Сравнение XML в Notepad ++ будет выполнено мгновенно бесплатно, показывая удаленные строки, добавленные строки, текст, измененный в той же строке. Notepad plus plus, вероятно, является лучшим XML-редактором, поскольку он также работает как XML-форматер и является отличным XML-редактором для Windows 10.

Вот как редактировать XML-файлы в блокноте, но также и как сохранить XML-файл в блокноте.

notepad ++ сравнить два файла

Действуя как отличный инструмент сравнения файлов, вы также можете сравнить текстовые файлы с этим текстом, сравнивая тэг notepad ++. Даже сравните двухсловные документы, скопировав текст в Notepad ++.

Сравните два текстовых файла с сопоставлением плагинов блокнота, который используется для сравнения 2 файлов в блокноте ++ и сравнения текстовых файлов notepad ++.

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

Загрузите плагин сравнения файлов с блокнотом ++ и установите его, чтобы использовать блокнот плюс плюс сравнить плагин, чтобы сделать блокнот ++ сравнить два текстовых файла.

Сравните два файла в блокноте ++:

Таким образом можно сравнивать содержимое любого типа файла.

Основное использование — сравнить два текстовых файла notepad ++.

Но плагин для сравнения с блокнотом можно также использовать, вставляя данные из любых файлов в приложении, и используя блокнот ++ diff, чтобы показать все различия между содержимым файлов.

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

Как сравнить XML в Notepad ++?

Сравните два текстовых файла в Notepad ++ для сравнения XML-файлов, открыв обе вкладки и воспользовавшись меню Плагины> Сравнить> Сравнить.

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

Как проверить разницу между двумя файлами в notepad ++?

Чтобы сравнить файлы в NotePad ++, используйте плагин сравнения, чтобы проверить различия между двумя файлами, которые нужно открывать как текстовые файлы, такие как файлы XML, файлы HTML, файлы CSV или другие текстовые файлы для сравнения.

Как установить плагин сравнения для Notepad ++?

Загрузите последний подключаемый модуль сравнения с SourceForge и извлеките его в папку установки подключаемого модуля NotePad ++, обычно расположенную в папке «C: \ Program Files (x86) \ Notepad ++ \ plugins», и перезапустите программу Notepad ++ для сравнения двух файлов с помощью меню «Подключаемые модули»> «Сравнить». > Сравните.

Как сравнить два документа Word в блокноте ++?

Сравнение двух текстовых файлов в Windows 10 довольно просто с Notepad ++.

Для сравнения текста документов Word скопируйте текст обоих документов на разные вкладки текстового редактора Notepad ++ и используйте плагин сравнения Notepad Plus Plus для сравнения текстов.

Различия, найденные в тексте документов Word, легко заметить в интерфейсе Notepad ++, показывающем различия между файлами.

Установите плагин сравнения с менеджером плагинов

Плагин сравнения также доступен в менеджере плагинов.

После того, как плагин был загружен и установлен, перезапустите Notepad ++, и он будет доступен в меню плагинов> Сравнить.

Похожие статьи