2010-08-31 136 views
0

我從word文檔中有多個<body>標記。 我用open xml sdk來做這件事。因此,新的文件應與OPENXML將多個<Body>(xml)word文檔合併爲一個文檔

產生的來自

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

的身體我有不同的身體在列表中。具有不同的值。更改了xml中的一些文本。並將它們保存在一個新的列表中。

現在必須列出一個新的word文檔。我怎樣才能做到這一點?我試過altChunk。但是我的文件始終是腐敗的。

有人能幫助我嗎?

+0

我用altChunk管理這個 - 發佈你的altChunk代碼,我們可以看看。 – Shaneo 2010-09-16 12:47:59

回答

0

您可以使用sdk創建WordDocument。我認爲這是

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

你也可以承擔由此產生的文檔不工作,使用SDK工具,在它的XML看起來還是隻重命名文檔爲.zip擴展,看看爲什麼它好好嘗試的工作。

+0

它的工作原理是這樣的。但是我用1個單詞文件去了所有的身體。但我通過創建更多文檔解決了這個問題 – Sven 2010-09-16 21:04:27

+0

我相信你只能在文檔中擁有一個主體。但是您可以從其他主體中刪除段落,並將它們全部添加到新的文檔主體中。 – 2011-02-20 01:14:46

0

如果您在不克隆的情況下從其他文檔添加您的書籤列表,此功能將引發異常。 我們必須爲每個身體元素使用CloneNode(deep:true)

WordProcessingDocument.Create("path_and_name_with_.docx").MainDocumentPart.Document.append(yourBodyList); 這可能會導致異常。 參考這篇文章:Cannot insert the OpenXmlElement "newChild" because it is part of a tree

CloneNode(true)將創建該元素的克隆,並且沒有任何鏈接或對父級的引用。 併爲您的多身體問題。獲取每個主體的子元素並將其添加到新的Body()元素。 希望這有助於!