2016-07-07 40 views
0

「変更履歴」モードで編集した単語文書からテキストを抽出します。私は挿入されたテキストを抽出し、削除されたテキストを無視したい。 (:イン要素ワット)python-docxでトラックチェンジを挿入したテキストを抽出する方法

私は「トラックの変更」モードで挿入された段落が空Paragraph.text

import docx 

doc = docx.Document('C:\\test track changes.docx') 

for para in doc.paragraphs: 
    print(para) 
    print(para.text) 

revisionedのインサート内のテキストを取得する方法はありますを返すことを見て、以下のコードを実行していますか?

私のpython-docxファイル0.8.6、lxmlの3.4.0、Pythonの3.4、Win7の

おかげ直接python-docxを使用していない

答えて

1

を使用しています。追跡された変更/改訂に対してAPIサポートはまだありません。

それはおそらく、あなたが要素名で検索した場合、あなたは発見するでしょうこれは、かなりトリッキーな仕事です:最初の結果として、この文書を立ち上げること、開始のための「オープンXMLワットイン」: https://msdn.microsoft.com/en-us/library/ee836138(v=office.12).aspx

私がピンチにそのような何かを行うために必要な場合は私が使用してbody要素を取得したい:

body = document._body._body 

をして、漠然とこのaircodeのように、何かを私は望んでいた要素を返すために、その上でXPathを使用します。

from docx.text.paragraph import Paragraph 

inserted_ps = body.xpath('./w:ins//w:p') 
for p in inserted_ps: 
    paragraph = Paragraph(p, None) 
    print(paragraph.text) 

あなたが望む段落をXPath式で得ることができるかどうかは、あなた自身で判断してください。

opc-diagがこれに含まれていて、.docxパッケージのXMLをすばやくスキャンすることができます。 http://opc-diag.readthedocs.io/en/latest/index.html

関連する問題