2010-11-19 2 views
5

Заранее благодарим за помощь и помощь.Diff 2 Open XML Word Documents

Я пытаюсь найти какую-то полезность/направление, как лучше сравнить два слова docx-файла (оригинал и измененную версию) для различий, а затем выделить изменения в модифицированной версии в C#.

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

ответ

4

OpenXML SDK 2.0 Toolkit поставляется с инструментом, который делает это. Это называется OpenXMLDiff. Вы также можете прочитать о том, что еще предлагает набор инструментов: An introduction to Open XML SDK 2.0.

Если это не то, что вам нужно, вам придется пройти через каждый пакет документов Open XML и определить различия между ними.

0

Файл docx - это переименованный zip-файл. Вы можете переименовать его в .zip и извлечь из него.

Однако docx не является почтовым индексом для одного файла .. его иерархия папок с файлами xml в нем. Таким образом, вы можете извлечь его и нарисуйте сравнительную утилиту, например Beyond Compare, чтобы получить различия.

Я не уверен, как бы вы представили различия? Вы хотите визуально показать разницу в документах Word? например этот абзац отсутствует во втором файле и т. д.

+0

Привет, спасибо за ваш ответ. У меня есть контроль над редактором документов, который используется для создания этих документов, поэтому мое намерение было отключить возможность выделения в редакторе, чтобы я мог использовать это как механизм для выделения изменений/дополнений к документ. – Emlyn

0

Содержимое документа помечается и разбивается на XML в зависимости от любых параметров, изменений, акцентов и т. д., добавляется/изменяется/удаляется между сэйвами. Что-то простое, как добавление и удаление новой строки, может привести к другой физической структуре XML. В конечном фактическом содержимом не будет никакой разницы, но XML может отличаться.

Что именно означает «разницу», которую вы хотите идентифицировать? Это определит, сколько парсинга внутренней структуры вам нужно сделать, и какие методы или инструменты вы можете использовать для определения различий.

0

Есть несколько инструментов для работы с OpenXML, перечисленных here.

0

Немного освежу эту тему. В настоящее время «Open XML SDK 2.5 Productivity Tool» делает это. Я нашел это очень полезным в разных файлах pptx \ docx \ xlsx. Open XML SDK 2.5

Если вы используете Visual Studio, вы должны также рассмотреть вопрос о добавлении этого плагина: Open XML Package Editor for Visual Studio. Это очень полезно, если вы быстро заглянули в файл или что-то изменили.

Смежные вопросы