方式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')