Объединение нескольких документов <Body>(xml) в один документ - PullRequest
0 голосов
/ 31 августа 2010

У меня есть несколько <body> тегов из документа Word. Я делаю это с открытым XML SDK. Таким образом, новый документ должен быть сгенерирован с помощью openxml

Тело происходит от

WordprocessingDocument.Open("C:\Temp\Test.docx").MainDocumentPart.Document.Body.OuterXml

У меня такие разные тела в списке. С разными значениями. Изменен какой-то текст в xml. И сохранили их в новом списке.

Теперь этот список должен появиться в новом текстовом документе. Как я могу это сделать? Я попробовал altChunk. Но мой документ Word всегда поврежден.

Кто-нибудь, кто может мне помочь?

Ответы [ 2 ]

0 голосов
/ 10 января 2014

Эта функция выдает исключение, если вы добавляете свой список пользователей из другого документа без клонирования. Мы должны использовать CloneNode(deep:true) для каждого элемента тела.

WordProcessingDocument.Create("path_and_name_with_.docx").MainDocumentPart.Document.append(yourBodyList); Это может вызвать исключение. См. Этот пост: Невозможно вставить OpenXmlElement "newChild", потому что он является частью дерева

CloneNode (true) создаст клон элемента и без каких-либо ссылок или ссылок на родителя. И для вашей мульти проблемы с телом. получить дочерние элементы каждого тела и добавить его в новый элемент Body (). Надеюсь, это поможет!

0 голосов
/ 16 сентября 2010

Вы можете создать WordDocument с помощью SDK. Я думаю, что это

WordProcessingDocument.Create("path_and_name_with_.docx").MainDocumentPart.Document.append(yourBodyList);

Вы также можете взять полученные документы, которые не работают, и посмотреть на его XML, используя инструмент SDK, или просто переименовать расширение doc в .zip и посмотреть, почему он не работает.

...