我有以下代码来拆分docx文件的每个段落并附加到一个列表中,但是我需要识别xml树结构中的分页符,并为每个页面创建一个文本列表。如果有帮助的话,我很乐意提供确切的名称空间:
xml_content = document.read('word/document.xml')
tree = XML(xml_content)
aggText = []
#tree.getiterator method looks at previously defined word namespaces
for paragraph in tree.getiterator(PARA):
texts = [node.text
for node in paragraph.getiterator(TEXT)
if node.text]
if texts:
aggText.append(''.join(texts))
我设想更新后的循环将如下所示,但不确定在xml树结构中定位分页符:
aggText = []
for paragraph in tree.getiterator(PARA):
texts = [node.text
for node in paragraph.getiterator(TEXT)
if node.text]
#page breaks in xml read 'w:lastRenderedPageBreak'
#below doesn't work, need a way to search raw xml for the page break identifier
if texts.count(lastRenderedPageBreak) > 0:
pages = aggText.append(''.join(texts))
texts = []
任何想法都将不胜感激!
发布于 2018-08-09 21:41:55
解决方案如下,我还更新了迭代器函数,因为getiterator()现在已被弃用。
NAMESPACE =
'{http://schemas.openxmlformats.org/wordprocessingml/2006/main}'
pages = []
PARA = NAMESPACE + 'p'
TEXT = NAMESPACE + 't'
PAGE = NAMESPACE + 'lastRenderedPageBreak'
aggText = ''
for paragraph in tree.iter(PARA):
aggText += ''.join([node.text
for node in paragraph.iter(TEXT)
if node.text])
if aggText and [node for node in paragraph.iter(PAGE):
pages.append(aggText)
aggText = ''
if aggText != '':
pages.append(aggText)
https://stackoverflow.com/questions/51735794
复制相似问题