C# Библиотека для сравнения структур дерева XML
Я хочу написать приложение на C#, которое будет сравнивать древовидную структуру двух файлов XML. Т.е. меня не волнует содержание узлов, но только если в обоих файлах используются одинаковые теги (порядок не имеет значения).
Затем я хотел бы вывести узлы, найденные только в одном из файлов.
Есть ли библиотека для этой цели? Я предполагаю, что сравнение XML - это особенность, реализованная уже много раз. До сих пор я обнаружил только, казалось бы, устаревшую библиотеку Microsoft Diff and Patch, которая, насколько я могу судить, не предлагает возможность игнорировать содержимое узлов. Также неправильно использовать библиотеку, которая кажется устаревшей.
1 ответ
Если вы не хотите сравнивать контент и заботиться только о структуре, давайте избавимся от контента!
Вы можете использовать встроенный XmlDocument
класс, чтобы загрузить оба XML-файла в память, а затем начать с корня и перейти вниз по дереву и удалить весь контент (так как вам все равно). Затем вы можете взять эти расширенные файлы и запустить их через обычную файловую библиотеку diff (например, Google-diff-match-patch)