方式1:ET.Element()
需求:
<home><son name="儿1"><grandson name="儿11"></grandson><grandson name="儿12"></grandson></son><son name="儿2"></son></home>
from xml.etree import ElementTree as ET# 创建home 根标签root = ET.Element('home')# 创建两个son子节点son1 = ET.Element('son',{'name':'儿1'})son2 = ET.Element('son',{'name':'儿2'})# 创建grandson 孙节点grandson1 = ET.Element('grandson',{'name':'儿11'})grandson2 = ET.Element('grandson',{'name':'儿12'})# 将孙节点放入 第一个子节点son1.append(grandson1)son1.append(grandson2)# 将两个子节点 放入根标签root.append(son1)root.append(son2)# 保存文件设置tree = ET.ElementTree(root)tree.write('new3.xml',encoding = 'utf-8')
方式2:ET.makeelement()
个人认为这种方式没什么卵用,因为无非是吧刚才的Element改成了这个,剩下的一样
需求:
<famliy><son name="儿1"><grandson name="儿11"></grandson><grandson name="儿12"></grandson></son><son name="儿2"></son></famliy>
from xml.etree import ElementTree as ET# 创建根节点root = ET.Element("famliy")# 创建大儿子son1 = root.makeelement('son', {'name': '儿1'})# 创建小儿子son2 = root.makeelement('son', {"name": '儿2'})# 在大儿子中创建两个孙子grandson1 = son1.makeelement('grandson', {'name': '儿11'})grandson2 = son1.makeelement('grandson', {'name': '儿12'})son1.append(grandson1)son1.append(grandson2)# 把儿子添加到根节点中root.append(son1)root.append(son2)tree = ET.ElementTree(root)tree.write('oooo.xml',encoding='utf-8')
方式3:ET.SubElement()
需求:
<famliy><son name="儿1"><age name="儿11">孙子</age></son><son name="儿2"></son></famliy>
from xml.etree import ElementTree as ET# 创建根标签root = ET.Element('family')# 创建子节点 孙子节点son1 = ET.SubElement(root,'son',attrib={'name':'儿1'})grandson = ET.SubElement(son1,'age',attrib={'name':'儿11'})son2 = ET.SubElement(root,'son',attrib={'name':'儿2'})grandson.text = '孙子'# 保存文件tree = ET.ElementTree(root)tree.write('new4.xml',encoding='utf-8')
