在Python中从Word文档(.docx)提取突出显示的单词

在Python中从Word文档(.docx)提取突出显示的单词,python,xml,ms-word,docx,Python,Xml,Ms Word,Docx,我正在处理一组word文档,其中有高亮显示的文本(单词)(使用颜色代码,例如黄色、蓝色、灰色),现在我想提取与每种颜色相关的高亮显示的单词。我正在用Python编程。以下是我目前所做的工作: 使用[python docx][1]打开word文档,然后进入标记,该标记包含文档中的标记(单词)。我使用了以下代码: #!/usr/bin/env python2.6 # -*- coding: ascii -*- from docx import * document = opendocx('test.

我正在处理一组word文档,其中有高亮显示的文本(单词)(使用颜色代码,例如黄色、蓝色、灰色),现在我想提取与每种颜色相关的高亮显示的单词。我正在用Python编程。以下是我目前所做的工作:

使用
[python docx][1]
打开word文档,然后进入
标记,该标记包含文档中的标记(单词)。我使用了以下代码:

#!/usr/bin/env python2.6
# -*- coding: ascii -*-
from docx import *
document = opendocx('test.docx')
words = document.xpath('//w:r', namespaces=document.nsmap)
for word in words:
  print word

现在,我被困在检查每个单词是否有
标记的部分,并从中提取颜色代码,以及它是否与
标记内的黄色打印文本匹配。如果有人能告诉我如何从解析文件中提取单词,我将不胜感激

我以前从未使用过,但有帮助的是,我在网上发现了一个片段,其中突出显示的文本的XML结构看起来像:

 <w:r>
    <w:rPr>
      <w:highlight w:val="yellow"/>
    </w:rPr>
    <w:t>text that is highlighted</w:t>
  </w:r>

我做了一些小改动(缺少标记声明和ascii到utf8字符的处理),修改后的代码再次可用,谢谢@BioGeek!不客气。这是一个很酷的问题,我也学到了一些新东西。来自一位生物信息学家同事的问候!
from docx import *
document = opendocx(r'test.docx')
words = document.xpath('//w:r', namespaces=document.nsmap)

WPML_URI = "{http://schemas.openxmlformats.org/wordprocessingml/2006/main}"
tag_rPr = WPML_URI + 'rPr'
tag_highlight = WPML_URI + 'highlight'
tag_val = WPML_URI + 'val'

for word in words:
    for rPr in word.findall(tag_rPr):
        if rPr.find(tag_highlight).attrib[tag_val] == 'yellow':
            print word.find(tag_t).text