python3 xml.etree.ElementTree.ElementTree类
1、介绍
对应整个xml结构。
2、初始化
class ElementTree:
def __init__(self, element=None, file=None):
self._root = element # first node
if file:
self.parse(file)
- element,ElementTree.Element类型,即设置一个节点对象作为根节点
- file,str类型,xml文件路径,如果存在则进行解析
3、方法
(1)getroot
def getroot(self):
- 返回根节点,ElementTree.Element类型
(2)parse
def parse(self, source, parser=None):
- 解析
- source, str类型,表示待解析的xml文件路径
- parser,解析模式,可以不设置
(3)iter
def iter(self, tag=None):
- 对所有子节点迭代,遵循的是先从外到内,再从前到后
- 包括根节点本身
(4)find
def find(self, path, namespaces=None):
(5)findtext
def findtext(self, path, default=None, namespaces=None):
(6)findall
def findall(self, path, namespaces=None):
(7)iterfind
def iterfind(self, path, namespaces=None):
(8)write
def write(self, file_or_filename,
encoding=None,
xml_declaration=None,
default_namespace=None,
method=None, *,
short_empty_elements=True):
- 将本对象写入文件中
- encoding,str类型,即写入文件的编码,一般设为'utf-8'
- xml_declaration,bool类型,为True会在首行写入xml声明
3、parse函数
def parse(source, parser=None):
tree = ElementTree()
tree.parse(source, parser)
return tree
- 作用是解析成ElementTree对象
- source,可以是一个文件路径,str类型。也可以是一个文件对象
- parser,解析模式,非必要参数
4、使用
(1)创建并写入
# 创建树结构
root = ElementTree.Element('Root')
tree = ElementTree.ElementTree(root)
# 创建节点,节点名称,属性键值对
name = Element("name", {'id': 'id2', 'order': 'order2'})
# 节点的文本
name.text = "xiaoming"
age = Element("age")
age.text = "12"
gender = Element("gender")
gender.text = "男"
# 向一个元素中添加
root.append(name)
root.append(age)
name.append(gender)
# 树结构
tree.write("1.xml", encoding='utf-8', xml_declaration=True)
<?xml version='1.0' encoding='utf-8'?>
<Root><name id="id2" order="order2">xiaoming<gender>男</gender></name><age>12</age></Root>
(2)读取xml文件解析
xml = ElementTree.parse('1.xml')
root = xml.getroot()
for item in root.iter(tag=None):
print(item)
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战