8

如何从 docx 文件中逐字读取(带有样式)。我想逐字比较两个 docx 文件,并根据我必须写入另一个 docx 文件(使用 c# 和 OOXML)的差异。我已经尝试通过使用DocumentFormat.OpenXml.Extensions.dllOpenXMLdiff.dllICSharpCode.SharpZipLib.dll来实现这一点,但没有任何东西可以让我选择逐字阅读(ICSharpCode.SharpZipLib 确实给出了逐字但它不会给出与该词相关的样式)。

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

4

2 回答 2

3

这篇 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>
于 2011-03-15T05:53:11.653 回答
0

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

于 2011-01-02T21:00:17.153 回答