欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python-操作XML文件

程序员文章站 2022-06-22 09:23:04
一、python对XML文件的操作 目录 1、xml 创建 2、xml 数据查询 3、xml 数据修改 4、xml 数据删除 二、 1、xml 创建 1 import xml.etree.ElementTree as ET 2 3 new_xml=ET.Element('personinfolist ......

一、python对xml文件的操作

  目录

    1、xml 创建

    2、xml 数据查询

    3、xml 数据修改

    4、xml 数据删除

二、

  1、xml 创建

  

 1 import xml.etree.elementtree as et
 2 
 3 new_xml=et.element('personinfolist')   #最外面的标签名
 4 personinfo=et.subelement(new_xml,'personinfo',attrib={'enrolled':'aaa'}) #对应的参数是:父级标签是谁,当前标签名,当前标签属性与值
 5 name=et.subelement(personinfo,'name')
 6 name.text='xaoming'
 7 age=et.subelement(personinfo,'age',attrib={'checked':'yes'})
 8 age.text='23'
 9 
10 
11 
12 personinfo2=et.subelement(new_xml,'personinfo',attrib={'enrolled':'bbb'})
13 name=et.subelement(personinfo2,'name')
14 name.text='xaokong'
15 age=et.subelement(personinfo2,'age',attrib={'checked':'no'})
16 age.text='20'
17 
18 et=et.elementtree(new_xml)
19 et.write('text1.xml',encoding='utf-8',xml_declaration=true)#生成text1.xml

2、xml 数据查询

 1 import xml.etree.elementtree as et
 2 
 3 tree=et.parse('text1.xml')
 4 
 5 root=tree.getroot()
 6 
 7 print(root.tag)
 8 
 9 #遍历 xml 文档
10 for i in root:
11     print(i.tag,i.attrib)    # tag是指标签名,attrib 是指标签里的属性,text 是指标签内容
12     for j in i:
13         print(j.tag,j.attrib,j.text)
14         for k in j:
15             print(k.tag,k.attrib,k.text)
16 
17 #只遍历 year 标签
18 for w in root.iter('year'):  #只遍历指定标签
19     print(w.tag,w.text)

3、xml 数据修改

 1 import xml.etree.elementtree as et
 2 
 3 tree=et.parse('text1.xml')
 4 
 5 root=tree.getroot()
 6 
 7 print(root.tag)
 8 
 9 #修改 xml
10 for node in root.iter('year'):  #要修改的标签
11     new_year=int(node.text)+1
12     node.text=str(new_year)
13     node.set('updsted_by','kong')  #给这个标签(year)添加新的属性 key:value
14 
15 tree.write('text1.xml')     #再吧数据写回去

4、xml数据删除

import xml.etree.elementtree as et

tree=et.parse('text1.xml')

root=tree.getroot()


for country in root.findall('country'):   #会取这个标签所有的数据
    rank=int(country.find('rank').text)
    if rank > 50:
        root.remove(country)    #删除数据


tree.write('output.xml')  #再把数据写回文件

学习无止境,初心要笃行!!!