「Python」 ElementTree模块解析xml文件,建议小白阅读全文

背景

Python有三种方法解析xml:SAX,DOM,Elementree。本文记录ElementTree方法解析xml。
目前自己用的是Python3.6,但在该版本中并没有xml的缩进函数ET.indent,不过就我所知3.9版本是有的,所以当前3.6写出来的xml是无法调用函数来美化xml排版,文中的xml排版是手动挡 :)。当然,也可以写个函数来自动优化。

正文

xml是一种固有的分层数据格式,最好的描述方式就是使用树形结构。在ElementTree模块中,使用ElementTree对象来表示一棵树,Element对象来表示树中的一个单一结点。读取、写入一个xml文件一般都是在ElementTree层面上操作,而对xml元素(结点)及其子元素(子结点)的操作是在Element层面上进行。

说明:下面的内容有时候使用明确的node名称来代替Element进行操作,有时候使用Element泛指一个结点。ElementTree和Element是一个类,创建一棵树tree或者一个结点node相当于类的实例化。

解析xml文件

import xml.etree.ElementTree as ET   # 导入ElementTree模块
tree = ET.parse(xml_file_path)       # 解析xml文件,得到树形结构
root = tree.getroot()                # 获取根节点

结点基础:node.tag,node.attrib,node.get(),node.text

每个结点都有标签(tag)和属性(attrib),标签名一般不为空,属性可为空,比如:

<data, attrib=[]>
	<daughter_node, name="child_1", age="20">
		<chichild_node>
		...
		</chichild_node>
	</daughter_node>
	
	...
	
	<daughter_node>2021</daughter_node>
	
	<son_node>
		
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值