加载元素树模块

Python标准库中,提供了元素树的两种实现。一个是纯Python实现的xml.etree.ElementTree,另一个是速度更快的C语言实现xml.etree.cElementTree。

因为C语言实现的元素树,它的速度要快很多,而且内存消耗也要少很多。所以在加载模块时先尝试去载入C语言实现的,没有再去用Python实现的元素树。

try:

import xml.etree.cElementTree as ET

except ImportError:

import xml.etree.ElementTree as ET

打开XML文档并解析为树

调用parse()方法,返回解析树。调用树的方法getroot()可以获取树的根节点。

tree = ET.parse("kun.xml") # 将xml解析为树

root = tree.getroot() # 获取根节点

查找节点

xml示例:

张三

18

89

李四

19

81

王五

17

92

使用Element.iter()查找

Element.iter()会将节点中的子节点和孙节点都遍历一遍。

for student in root.iter('student'):

print student[0].text # 打印名字

输出结果:

张三

李四

王五

使用Element.findall()查找

Element.findall()只会将节点中的子节点遍历一遍,不会查找孙节点。查找孙节点时可以使用下列方法:

students = root.find('students')

for element in students.findall('student'):

name = element.find('name').text

print name

输出结果:

张三

李四

王五

修改节点

通过一下函数进行修改:

方法

功能

Element.text = ''

直接改变字段内容

Element.append(Element)

为当前的Elment对象添加子对象

Element.remove(Element)

删除Element节点

Element.set(key, value)

添加和修改属性

ElementTree.Element()

构建一个节点

ElementTree.SubElement(Element,tag)

构建一个子节点

保存XML

调用树的方法write()保存更新XML文件:

# 以UTF-8的格式保存

tree.write('kun.xml', 'UTF-8')

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐