2015-10-22 5 views
0

У меня есть пакет документов XML и SGML (около 7000 из них). Я хочу что-то, что преобразует их в структурированные документы Microsoft Word. Я читал в Интернете в течение 2 дней о том, как это сделать, и я больше смущен, чем когда начал.Преобразование из XML в Microsoft Word Doc

Я вижу, что вы можете использовать Open XML SDK и C# для создания его с помощью Visual Studio, используя этот ответ здесь: StackOverflow answer, который ссылается на этот Using XSLT and Open XML SDK. Однако это происходит 7 лет назад. Я не уверен, что это все еще актуально, и я не знаю, что это определенно то, что мне нужно.

Также документы, из которых я конвертирую, сами теги находятся на шведском языке. Поэтому я предполагаю, что мне нужно что-то прочитать и конвертировать теги на английский, а затем превратить его в формат Word XML.

Я могу писать на C# и C++, и, возможно, мне придется по-своему определять большинство языков сценариев, если мне это нужно, но у меня нет опыта создания текстовых документов из кода. Я понимаю, что мне может понадобиться сделать DTD или XSLT и, возможно, использовать Word XML (об этом я узнал за последние 2 дня) и использовать его в некоторых проектах Visual Studio.

Однако я понятия не имею, как это сделать. Может ли кто-нибудь угодить мне в правильном направлении?

Благодаря

ответ

1

Эта тема очень широка и не могу ответить подробно с одной должности ...

Информация, которую вы нашли, от 7 лет назад, по-прежнему актуальным и действительным. Все версии Word с 97 могут работать с файловым форматом (2003 и более ранние должны быть «Pack Compatibility Pack», но большинство машин, которые были обновлены, будут иметь это). Более поздние версии, чем 2007, также могут работать с файловым форматом, как указано 7 лет назад, но это не будет охватывать новые функции, введенные в 2013/2016 годах. Это может быть добавлено без проблем, вы просто не найдете эти классы в старой документации, но все это есть в MSDN и в текущих спецификациях ECMA.

Сложная часть, которая не очевидна на первый взгляд, исходит из того факта, что документ Word Open XML представляет собой пакет ZIP из нескольких XML и двоичных файлов и не может быть преобразован напрямую. Вместо того, чтобы полагаться только на ссылку в SO Q A, вы обнаружили, что лучше всего работать с форматом «плоского файла» OPC, как объяснил Эрик Уайт: http://blogs.msdn.com/b/ericwhite/archive/2008/09/29/the-flat-opc-format.aspx.

То, что вы производите с помощью XSLT, должно привести к этому формату. Это нужно преобразовать в ZIP-пакет, чтобы продолжить работу с ним, используя Open XML SDK (и использовать версию 2.5, а не 2.0 от 7 лет назад). Статьи Эрика Уайта содержат информацию о конверсиях, которая поможет.

Задача, безусловно, не будет тривиальной, поскольку Word - очень сложный зверь. Если у наборов этих документов есть что-то общее, вы можете ускориться быстрее, вручную «конвертируя» (часть) один в пользовательском интерфейсе Word в желаемый результат. Сохраните и просмотрите его в Инструменте производительности Open XML, где вы можете просмотреть базовый Word Open XML (а также код Open XML SDK, необходимый для создания). Это должно помочь вам «сопоставить» оригинальную надпись с надписью Word Open XML.