2010-02-16 32 views
8

如何從docx文件中逐字讀取(使用樣式)。我想逐字比較兩個docx文件,並基於我必須寫入另一個docx文件(使用c#和OOXML)的差異。 我曾嘗試用DocumentFormat.OpenXml.Extensions.dllOpenXMLdiff.dllICSharpCode.SharpZipLib.dll但沒有什麼是給我讀字的字的選擇實現這一目標(ICSharpCode.SharpZipLib做逐詞提供,但不會給出與該詞相關的風格)。使用OOXML比較Docx文件

對此的任何幫助將是非常有用的。

回答

0

最簡單的方法是使用您最喜歡的ZIP庫解壓縮DOCX文件,然後將文本文件與文件IO庫進行比較。

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>