part of word document xml:
<w:p w14:paraId="1A403538" w14:textId="03591853" w:rsidR="00280630" w:rsidRDefault="00280630" w:rsidP="00280630">
<w:pPr>
<w:pStyle w:val="Heading1"/>
<w:rPr>
<w:lang w:val="en-US"/>
</w:rPr>
</w:pPr>
<w:r>
<w:rPr>
<w:lang w:val="en-US"/>
</w:rPr>
<w:lastRenderedPageBreak/>
<w:t>Chapter to Hide</w:t>
</w:r>
</w:p>
I would like to add a <w:vanish/> element programmatically where it is seen below:
<w:p w14:paraId="1A403538" w14:textId="03591853" w:rsidR="00280630" w:rsidRPr="000E4C6C" w:rsidRDefault="00280630" w:rsidP="00280630">
<w:pPr>
<w:pStyle w:val="Heading1"/>
<w:rPr>
<w:vanish/>
<w:lang w:val="en-US"/>
</w:rPr>
</w:pPr>
<w:r w:rsidRPr="000E4C6C">
<w:rPr>
<w:vanish/>
<w:lang w:val="en-US"/>
</w:rPr>
<w:lastRenderedPageBreak/>
<w:t>Chapter to Hide</w:t>
</w:r>
</w:p>
What I want to do would be something like this:
from docx import Document
doc = Document("invitation.docx")
for paragraph in doc.paragraphs:
p = paragraph._element
if '''(paraId == "1A403538")''':
run_pr = p.xpath('./w:pPr/w:rPr')
# append <vanish/>
Something I tried:
import xml.etree.ElementTree as ET
from xml.dom import minidom
trees = minidom.parse("document.xml")
tagnames = trees.getElementsByTagName("w:rPr")
for tag in tagnames:
child = ET.fromstring("<vanish/>")
tag.appendChild(child)
I get the following error from line tag.appendChild(child):
AttributeError: 'xml.etree.ElementTree.Element' object has no attribute 'nodeType'