python对XML文件的操作实现代码
python对XML文件的操作
1、xml创建
importxml.etree.ElementTreeasET
new_xml=ET.Element('personinfolist')#最外面的标签名
personinfo=ET.SubElement(new_xml,'personinfo',attrib={'enrolled':'aaa'})#对应的参数是:父级标签是谁,当前标签名,当前标签属性与值
name=ET.SubElement(personinfo,'name')
name.text='xaoming'
age=ET.SubElement(personinfo,'age',attrib={'checked':'yes'})
age.text='23'
personinfo2=ET.SubElement(new_xml,'personinfo',attrib={'enrolled':'bbb'})
name=ET.SubElement(personinfo2,'name')
name.text='xaokong'
age=ET.SubElement(personinfo2,'age',attrib={'checked':'no'})
age.text='20'
et=ET.ElementTree(new_xml)
et.write('text1.xml',encoding='utf-8',xml_declaration=True)#生成text1.xml
2、xml数据查询
importxml.etree.ElementTreeasET
tree=ET.parse('text1.xml')
root=tree.getroot()
print(root.tag)
#遍历xml文档
foriinroot:
print(i.tag,i.attrib)#tag是指标签名,attrib是指标签里的属性,text是指标签内容
forjini:
print(j.tag,j.attrib,j.text)
forkinj:
print(k.tag,k.attrib,k.text)
#只遍历year标签
forwinroot.iter('year'):#只遍历指定标签
print(w.tag,w.text)
3、xml数据修改
importxml.etree.ElementTreeasET
tree=ET.parse('text1.xml')
root=tree.getroot()
print(root.tag)
#修改xml
fornodeinroot.iter('year'):#要修改的标签
new_year=int(node.text)+1
node.text=str(new_year)
node.set('updsted_by','kong')#给这个标签(year)添加新的属性key:value
tree.write('text1.xml')#再吧数据写回去
4、xml数据删除
importxml.etree.ElementTreeasET
tree=ET.parse('text1.xml')
root=tree.getroot()
forcountryinroot.findall('country'):#会取这个标签所有的数据
rank=int(country.find('rank').text)
ifrank>50:
root.remove(country)#删除数据
tree.write('output.xml')#再把数据写回文件
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。