Могут ли такие атрибуты, как 'Автор' и 'Инициалы' в узле комментария / ревизии 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))