Python-docx和ElemetTree:如何查找超链接在段落中的位置

问题描述 投票:0回答:1

我正在使用python-docx和ElementTree将Word文档转换为XML,除超链接外,它都工作正常。

我能够找到哪个python-docx段落具有超链接,但是,如果超链接位于段落文本的中间,则在将输出写入XML时我不知道在何处呈现超链接。

是否有一种方法可以遍历段落中的所有元素?如果我理解正确,则遍历运行将仅考虑<w:r>元素,因此我希望我的超链接元素将位于运行的2个之间。如何找出哪两个?

elementtree python-docx
1个回答
0
投票

python-docx使用lxml来处理其基础XML。我希望如果您坚持这样做,而不是引入Python的xml.etree.ElementTree,那就更好了,如果这就是ElementTree的意思。

对于段落,可以通过调用以下内容来生成基础的XML字符串:

for paragraph in document.paragraphs:
    print(paragraph._p.xml)

所有其他lxml.etree._Element方法以及python-docx重载的.xpath()方法也都可以使用,该方法使您可以编写带有名称空间前缀而不是整个名称空间URL的表达式,例如paragraph._p.xpath("w:rPr")。>>

© www.soinside.com 2019 - 2024. All rights reserved.