Использование метода _document в python-docx

Я использую python-docx и пытаюсь вставить <w:bookmarkStart> тег. Я не вижу никакого непосредственного метода API для создания тега. Поэтому я нашел несколько ссылок, чтобы получить доступ к необработанному XML с помощью document._document_part приписывать. Однако, когда я пытаюсь использовать его, python говорит мне, что его не существует:

>>> import docx
>>> document = docx.Document()
>>> print document._document_part
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'Document' object has no attribute '_document_part'

Я использую python-docx 0.8.5.

Есть ли способ добавить <w:bookmarkStart> тег?

1 ответ

Я нашел решение. Вот пример:

from docx.oxml.shared import OxmlElement # Necessary Import

tags = document.element.xpath('//w:r') # Locate the right <w:r> tag

tag = tags[0] # Specify which <w:r> tag you want

child = OxmlElement('w:ARBITRARY') # Create arbitrary tag

tag.append(child) # Append in the new tag

Чтобы добавить атрибут:

from docx.oxml.shared import qn

child.set( qn('w:val'), 'VALUE') # Add in the value
Другие вопросы по тегам