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 = 创建的值

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值