合并多个(xml) word 文档到 1 个文档

发布于 2024-09-16 09:51:31 字数 358 浏览 11 评论 0原文

我的 Word 文档中有多个 标签。 我使用 open xml sdk 来完成此操作。因此,新文档应该使用 openxml 生成。

正文来自

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

我在列表中有如此不同的正文。具有不同的价值观。更改了 xml 中的一些文本。并将它们保存在一个新列表中。

现在必须将该列表放入新的 Word 文档中。我怎样才能做到这一点?我尝试过 altChunk。但我的word文档总是损坏。

有人可以帮助我吗?

I have multiple <body> tags from an word document.
I do this with the open xml sdk. So the new document should generated with openxml

The body's comes from

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

I have so different body's in a list. With al different values. Changed some text in the xml. And saved them in a new list.

Now must that list in an new word document. How can i do that? I tried altChunk. But my word document is always corrupt.

Somebody that can help me?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

就此别过 2024-09-23 09:51:31

您可以使用 sdk 创建 WordDocument。我认为

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

您还可以获取不起作用的结果文档,并使用 SDK 工具查看它的 XML,或者只是将文档重命名为 .zip 扩展名,然后查看它不起作用的原因。

You can create a WordDocument using the sdk. I think it's

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

You could also take the resulting documents that don't work and look at it's XML using the SDK tool or just rename the doc to .zip extension and see why it doens't work.

我还不会笑 2024-09-23 09:51:31

如果您从另一个文档添加您的bodylist而不进行克隆,则此函数将引发异常。
我们必须对每个主体元素使用CloneNode(deep:true)

WordProcessingDocument.Create("path_and_name_with_.docx").MainDocumentPart.Document.append(yourBodyList);
这可能会导致异常。
请参阅这篇文章: 无法插入 OpenXmlElement “newChild”,因为它是树的一部分

CloneNode(true) 将创建元素的克隆,并且没有任何对父元素的链接或引用。
对于您的多身体问题。获取每个 body 的子元素并将其添加到新的 Body() 元素中。
希望这有帮助!

This function will throw exception if you are adding yourbodylist from another document without cloning.
We have to use CloneNode(deep:true) for each body elements.

WordProcessingDocument.Create("path_and_name_with_.docx").MainDocumentPart.Document.append(yourBodyList);
This might cause exception.
Refer this post: Cannot insert the OpenXmlElement "newChild" because it is part of a tree

CloneNode(true) will create clone of the element and without any links or references to the parent.
And for your multi Body problem. get the child elements of each body and add it to a new Body() element.
Hope this helps!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文