XML文件使用Python xml.etree.ElemenTree模块进行解析
导入模块
import xml.etree.ElemenTree as ET
读取数据、解析XML,返回ElemenTree对象
tree = ET.parse(“filename.xml”)
获取根节点
root = tree.getroot()
获得data标签的孩子标签
for child in root:
print(child.tag,child.attrib,child.text)
找到对应的标签
root.find(“name”) # 找到第一个对应的子节点标签
找到所有的节点
root.findall("name")
遍历节点
for child in root.inter():
print(child.tag)
修改内容与属性,仅在内存中修改
rank = root.find("loaction")
rank.text = "89 90 78 76"
删除节点
root.remove(root.find("name"))
保存修改后的xml文档
tree = ET.ElemenTree(root)
tree.write("new.xml",encoding='utf-8')
创建XML文件
可以通过ET.Element()创建节点,也可以通过ET.MakeElement()创建节点
# 创建根标签
root = ET.Element("home")
# 创建儿子标签
son1 = ET.Element('son',{'name':'儿1'})
son2 = ET.Element('son',{'name':'儿2'})
# 创建孙子标签
grandson1 = ET.Element('son',{'name':'孙1'})
grandson2 = ET.Element('son',{'name':'孙2'})
son1.append(grandson1)
son2.append(grandson2)
root.append(son1)
root.append(son2)
# 写入文件
tree = ET.ElementTree(root)
tree.write('./create.xml',encoding='utf-8',short_empty_elements=False) # 是否使用短标签
直接创建子节点
grandson3 = ET.SubElement(son1,'son',attrib={'name':'孙1'})
节点间添加文本
grandson1.text = "999"