Python处理docx中的xml结点
.docx文件通过改后缀名.zip,解压后在能找到xml格式的文件
python处理
from xml.dom.minidom import parse 导入该包
使用python.open函数,保留为字符流文件
使用parse(xml的字符流文件)
获取了xml对象

大致结构如下

结点介绍
这里只介绍一些常用的,常看到的标签,可以自己去探索更多
<w:p> 表示一个段落,每一个P就是一个段落
<w:r> 表示一个样式串,指明它包括的文本的样式,表示一个特定的文本格式
<w:t>表示真正的文本内容
<w:rPr>是<w:r>标签内的标签,对文本属性进行修饰
<w:pPr>是<w:p>标签内的标签,对paragrph文本属性进行修饰
<w:rFronts>字体
<w:bCs> 复合字体的加粗
<w:jc w:val=“right”/> 表示对齐方式
<w:sz w:val=“40”/> 表示字号大小
<w:b w:val=”on”> 表示该格式串种的文本为粗体
<w:hdr>页眉
<w:ftr>页脚
<w:drawing>图片
<w:docPr>表示文档属性
<w:hint> 字体的类型,w:rFonts的子元素
<w:attr > 自定义XML属性
xml对象的属性和方法
获取一个结点列表:结点.getElementsByTagName(具体的结点名称),其返回的是所有该结点名称的一个列表
dom = parse(f)
node_document = dom.getElementsByTagName("w:document")[0]
创建一个具体的结点: dom.createElement(所要创建结点的名称)
dom.createElement("w:r")
###
结果:
就是在创建了一个<w:r>的结点
<w:r>
设置结点的属性:结点.setAttribute(属性名,属性值):
<w:r>
wr = dom.getElementByTagName("w:r")[0]
wr.setAttribute("w:val","yellow")
####
结果:
<w:r w:val="yellow">
把孩子添加到父节点中去:父节点.appendChild(子结点)
<w:r>
wr = dom.getElementByTagName("w:r")[0]
wt = dom.createElement("w:t")
wr.appendChild(wr)
####
结果:
<w:r>
<w:r>
创建一个指定值的文本结点:dom.createTextNode(所要创建的值),其不属于孩子结点
nodel_wt = dom.createElement("w:t")
nodel_text = dom.createTextNode("创建的值")
nodel_wt.appendChild(nodel_text)
###
结果:
<w:t>
创建的值
获取指定结点第一个还在的值:结点.childNodes[0].data
<w:t>
创建的值
nodel_wt = dom.createElement("w:t")
text = node_wt.childNodes[0].data
###
结果:
text = 创建的值
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)