方式1:ET.Element()

需求:

  1. <home>
  2. <son name="儿1">
  3. <grandson name="儿11"></grandson>
  4. <grandson name="儿12"></grandson>
  5. </son>
  6. <son name="儿2"></son>
  7. </home>
  1. from xml.etree import ElementTree as ET
  2. # 创建home 根标签
  3. root = ET.Element('home')
  4. # 创建两个son子节点
  5. son1 = ET.Element('son',{'name':'儿1'})
  6. son2 = ET.Element('son',{'name':'儿2'})
  7. # 创建grandson 孙节点
  8. grandson1 = ET.Element('grandson',{'name':'儿11'})
  9. grandson2 = ET.Element('grandson',{'name':'儿12'})
  10. # 将孙节点放入 第一个子节点
  11. son1.append(grandson1)
  12. son1.append(grandson2)
  13. # 将两个子节点 放入根标签
  14. root.append(son1)
  15. root.append(son2)
  16. # 保存文件设置
  17. tree = ET.ElementTree(root)
  18. tree.write('new3.xml',encoding = 'utf-8')

方式2:ET.makeelement()

个人认为这种方式没什么卵用,因为无非是吧刚才的Element改成了这个,剩下的一样
需求:

  1. <famliy>
  2. <son name="儿1">
  3. <grandson name="儿11"></grandson>
  4. <grandson name="儿12"></grandson>
  5. </son>
  6. <son name="儿2"></son>
  7. </famliy>
  1. from xml.etree import ElementTree as ET
  2. # 创建根节点
  3. root = ET.Element("famliy")
  4. # 创建大儿子
  5. son1 = root.makeelement('son', {'name': '儿1'})
  6. # 创建小儿子
  7. son2 = root.makeelement('son', {"name": '儿2'})
  8. # 在大儿子中创建两个孙子
  9. grandson1 = son1.makeelement('grandson', {'name': '儿11'})
  10. grandson2 = son1.makeelement('grandson', {'name': '儿12'})
  11. son1.append(grandson1)
  12. son1.append(grandson2)
  13. # 把儿子添加到根节点中
  14. root.append(son1)
  15. root.append(son2)
  16. tree = ET.ElementTree(root)
  17. tree.write('oooo.xml',encoding='utf-8')

方式3:ET.SubElement()

需求:

  1. <famliy>
  2. <son name="儿1">
  3. <age name="儿11">孙子</age>
  4. </son>
  5. <son name="儿2"></son>
  6. </famliy>
  1. from xml.etree import ElementTree as ET
  2. # 创建根标签
  3. root = ET.Element('family')
  4. # 创建子节点 孙子节点
  5. son1 = ET.SubElement(root,'son',attrib={'name':'儿1'})
  6. grandson = ET.SubElement(son1,'age',attrib={'name':'儿11'})
  7. son2 = ET.SubElement(root,'son',attrib={'name':'儿2'})
  8. grandson.text = '孙子'
  9. # 保存文件
  10. tree = ET.ElementTree(root)
  11. tree.write('new4.xml',encoding='utf-8')