Редактирование комментариев и ревизий DOCX с помощью Python - PullRequest
0 голосов
/ 09 января 2020

Могут ли такие атрибуты, как 'Автор' и 'Инициалы' в узле комментария / ревизии OO XML DOCX, быть изменены с помощью Python?

Я хотел бы получить отличный ответ @ kjhughes на как извлечь комментарии DOCX еще на один шаг и чтобы иметь возможность изменять атрибуты узла, т.е. вместо того, чтобы печатать значение 'author', например, я хочу заменить его другим значением (а затем сохранить XML и повторно заархивируйте DOCX).

from lxml import etree
import zipfile

ooXMLns = {'w':'http://schemas.openxmlformats.org/wordprocessingml/2006/main'}

def get_comments(docxFileName):
  docxZip = zipfile.ZipFile(docxFileName)
  commentsXML = docxZip.read('word/comments.xml')
  et = etree.XML(commentsXML)
  comments = et.xpath('//w:comment',namespaces=ooXMLns)
  for c in comments:
    # attributes:
    print(c.xpath('@w:author',namespaces=ooXMLns))
    print(c.xpath('@w:date',namespaces=ooXMLns))
    # string value of the comment:
    print(c.xpath('string(.)',namespaces=ooXMLns))
...