xml模块

xml文档的格式:

xml文档的操作

1.读取

整个文档:

 1 import xml.etree.ElementTree as xET
 2 
 3 
 4 tree=xET.parse('xml_test.xml')
 5 root=tree.getroot() #返回内存地址
 6 print(root)
 7 print(root.tag) #显示标签名
 8 
 9 #遍历xml文档
10 for child in root: #child:内存对象
11     print(child.tag,child.attrib)#child.tag:标签名,child.attrib:属性
12 
13     for i in child: #每个标签下还有东西,再遍历
14         print(i.tag,i.text,i.attrib)
15 
16         for j in i:#显示下一层的东西
17             print(j.tag,j.text,j.attrib)
18 
19             #如果下一层还有信息就再继续写

运行结果:

只读取部分文档:

 1 import xml.etree.ElementTree as xET
 2 
 3 
 4 tree=xET.parse('xml_test.xml')
 5 root=tree.getroot() #返回内存地址
 6 print(root)
 7 print(root.tag) #显示标签名
 8 
 9 #只遍历year 节点
10 for node in root.iter('year'):
11     print(node.tag,node.text)

运行结果:

2.xml文档的修改

 1 #修改
 2 
 3 import xml.etree.ElementTree as xET
 4 
 5 tree=xET.parse('xml_test.xml')
 6 root=tree.getroot()
 7 
 8 for node in root.iter('year'):
 9     new_year=int(node.text)+1#把每一年都加1
10     node.text=str(new_year)
11     node.set('updated','yes')#加属性yes
12 tree.write('xml_test.xml')
13 
14 #删除node
15 
16 for country in root.findall('country'):
17     rank=int(country.find('rank').text)
18 
19     if rank>50:#将rank大于50的country删除
20         root.remove(country)
21 
22 tree.write('removexml.xml')

运行结果:

原xml文件:

输出country之后生成的xml文件:

3.新建xml文件

 1 #自己创建一个新的xml文件
 2 
 3 import xml.etree.ElementTree as xET
 4 
 5 new_xml=xET.Element('personinfolist')
 6 personinfo=xET.SubElement(new_xml,'personinfo',attrib={'enrolled':'yes'})
 7 name=xET.SubElement(personinfo,'name')
 8 name.text='Tao'
 9 age=xET.SubElement(personinfo,'age',attrib={'checked':'no'})
10 age.text='23'
11 sex=xET.SubElement(personinfo,'sex')
12 sex.text='male'
13 personinfo2=xET.SubElement(new_xml,'personinfo',attrib={'enrolled':'yes'})
14 name=xET.SubElement(personinfo2,'name')
15 name.text='James'
16 age=xET.SubElement(personinfo2,'age')
17 age.text='22'
18 
19 et=xET.ElementTree(new_xml)
20 et.write('setupxml.xml',encoding='utf-8',xml_declaration=True)#xml_declaration声明是xml格式的
21 
22 xET.dump(new_xml)

新建的xml文件:

原文地址:https://www.cnblogs.com/BIT-taozhen/p/9873877.html