翻译
Eugene Pankov.著Using DocxToText to Extract Text from DOCX Files
简介
如今,微软已经转为使用基于XML格式存储文档内容了。这也给需要进行在Word文件(*.docx)搜索内容的程序员带来了一些小问题。当然,如 果在安装了Microsoft Office 2007的计算机上,是没什么问题的;但是,你的程序要是运行在没有Office的服务器上呢?
这里有三个选择:
1. 安装Microsoft Office 2007,并使用其DLL
2. 使用第三方的链接库,如"Office Open XML C# Library."
3. 自己写代码.
事实上,你还有另外一个选择:就是使用本文的DocxToText。:)

DocxToText类
本类只有一个功能,那就是从*.docx文件中,提取出文字。不过,在我们深入了解其代码之前,我想提示一下,Microsoft Word *.docx文件是压缩成zip文档的XML文档,包含文字、类型、图像等等。因此,我们不得不对其进行解包。如果,你在使用.NET 3.0,你可以使用System.IO.Packaging空间的Package类。不过,我在这里用于.NET 2.0平台,所以,使用了一个开源的ZIP库SharpZipLib. http://www.icsharpcode.net/OpenSource/SharpZipLib/
如果你重新命名你的*.docx文件成*.zip文件,并打开这个zip文件,你就会见到下面的内容:

首先,我们必须读取[Content_Types].xml文件,从中找到document.xml文件。通常,Microsoft把它隐藏在/word子目录中,不过如果这个文档不是Microsoft Word创建的,它可能存在与文件的任何的地方。接下来,我们就可以匹配document.xml,从中提取出文本了。
本文的代码中的ReadNode()方法,实现了上面的工作:它提取出字符串、图像、tab和目录,并连接成最终的字符串。