“我的word文档”包含多个未记录为文本的符号字体行。
当我使用python docx查看底层xml时,我可以看到未打印的行如下所示:
<w:sym w:font="Symbol" w:char="F0B3"/>
但是pythondocx完全忽略了w:sym标记。好像我提取文本时它们根本不在那里。这意味着我不能仅仅找到并用正确的格式替换符号。我需要能够在从文档中提取表格和文本之前替换它们
如何将上面的树元素转换为如下w:t版本:
<w:t>≥</w:t>
我完全可以为全行替换设置词典。我就是不知道如何在不破坏xml文件的情况下完成它
Tags:
这是不受
python-docx
API支持的。您需要以另一种方式编辑XMLpython-docx
可以让您以lxml.etree._Element
对象的形式访问段落XML元素(<w:p>
),然后您可以使用该API操作其子元素。基本思想是在找到w:sym
元素的地方插入一个新的<w:t>
元素,然后删除w:sym
元素lxml.etree._Element
API文档在这里:https://lxml.de/api/lxml.etree._Element-class.html。代码可能如下所示:还有一些细节需要解决,但希望这能给你一个追求的方向。一旦你解决了细节问题,也许你可以在这里发布你的解决方案
如果您在python docx方面运气不佳,那么xsl 1.0是一种替代方案:
相关问题 更多 >
编程相关推荐