使用 OOXML 比较 Docx 文件

发布于 2024-08-21 16:00:59 字数 294 浏览 12 评论 0原文

如何从 docx 文件中逐字(带样式)读取。我想逐字比较两个 docx 文件,并根据差异写入另一个 docx 文件(使用 c# 和 OOXML)。 我尝试使用 DocumentFormat.OpenXml.Extensions.dllOpenXMLdiff.dllICSharpCode.SharpZipLib.dll 来实现此目的,但没有任何效果逐字阅读的选项(ICSharpCode.SharpZipLib 确实给出逐字的内容,但它不会给出与该单词相关的样式)。

对此的任何帮助都将非常有用。

How can I read word-by-word (with styles) from a docx file. I want to compare two docx files word-by-word and based on the differences I have to write into another docx file (using c# and OOXML).
I have tried achieving this by using DocumentFormat.OpenXml.Extensions.dll, OpenXMLdiff.dll and ICSharpCode.SharpZipLib.dll but nothing is giving me the option to read word-by-word(ICSharpCode.SharpZipLib does give word-by-word but it will not give style associated with that word).

Any help on this will be very useful.

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

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

发布评论

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

评论(2

寂寞美少年 2024-08-28 16:00:59

这篇 MSDN 文章展示了如何可靠地逐段检索文档的确切文本。

http://msdn.microsoft.com/en-us/library/ff686712.aspx

同时,您可以确定每个段落的样式。这很容易。以下博客文章展示了如何检索每个段落的样式和文本:

http://blogs.msdn.com/b/ericwhite/archive/2009/02/16 /finding-paragraphs-by-style-name-or-content-in-an-open-xml-word-processing-document.aspx

比较两者?这取决于您确切想要的语义。一种方法是创建包含段落和样式的 XML 文档,然后比较 XML 文档。 XML 文档可能如下所示:

<Root>
  <Para>
    <Style>Normal</Style>
    <Text>This is the text of the paragraph.</Text>
  </Para>
  <Para>
    <Style>Heading1</Style>
    <Text>Overview of the Process</Text>
  </Para>
</Root>

This MSDN article shows how to reliably retrieve the exact text of a document, paragraph by paragraph.

http://msdn.microsoft.com/en-us/library/ff686712.aspx

At the same time, you can determine the style for each paragraph. That is pretty easy. The following blog post shows how to retrieve the style and text for each paragraph:

http://blogs.msdn.com/b/ericwhite/archive/2009/02/16/finding-paragraphs-by-style-name-or-content-in-an-open-xml-word-processing-document.aspx

Comparing the two? It depends on your exact desired semantics. One approach would be to create an XML document that contains paragraphs and styles, then comparing the XML documents. The XML document might look something like this:

<Root>
  <Para>
    <Style>Normal</Style>
    <Text>This is the text of the paragraph.</Text>
  </Para>
  <Para>
    <Style>Heading1</Style>
    <Text>Overview of the Process</Text>
  </Para>
</Root>
故事还在继续 2024-08-28 16:00:59

最简单的方法是使用您最喜欢的 ZIP 库解压缩 DOCX 文件,然后将文本文件与文件 IO 库进行比较。

The easiest way is to just unzip the DOCX file using your favorite ZIP library and then compare the text files with a file IO library.

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