XML文件已被广泛使用在各种应用中,如Web、移动APP、桌面GUI应用等等,几乎都会有XML文件的身影。不过现在一般不会将大部分的应用数据用xml文件存储,但至少会使用XML文件保存一些配置信息。在Python中,需要导入XML模块或其子模块,并利用提供的API来操作XML文件。如,xml.etree.ElementTree模块,通过该模块的parse函数读取XML文件。 由于下面XML操作都需要用到XML文件,文件如下:
persons.xml文件的内容:
- 20
- names
- 2000 30 Gell
- 3000 40 Chen
- 4000 50 Ling
以下介绍python语言对XML文件的具体操作。 一、读取与检索XML文件 from xml.etree.ElementTree import parse doc = parse('./files/persons.xml') for item in doc.iterfind('item'): # 读取id节点的值 salary = item.findtext('salary') # 读取name节点的值 age = item.findtext('age') # 读取price节点的值 name = item.findtext('name') type = item.get('type') uuid = item.get('uuid') print('type={}'.format(type)) print('uuid={}'.format(uuid)) print('salary={}'.format(salary)) print('age', '=', age) print('name', '=', name) print('-----------------')
二、字典转成XML字符串
import dicttoxml from xml.dom.minidom import parseString import os d = [20,'names', {'name':'Gell','age':30,'salary':2000}, {'name':'Chen','age':40,'salary':3000}, {'name':'Ling','age':50,'salary':4000} ] bxml = dicttoxml.dicttoxml(d,custom_root='persons') xml = bxml.decode('utf-8') print(xml) print('----------------------') dom = parseString(xml) prettyxml = dom.toprettyxml(indent=' ') print(prettyxml) #将XML字符串保存到文件中。 os.makedirs('files',exist_ok=True) f=open('files/persons.xml','w',encoding='utf-8') f.write(prettyxml) f.close()
三、XML字符串转为python字典
import xmltodict import pprint f=open('./files/persons.xml','rt',encoding='utf-8') xml = f.read() d=xmltodict.parse(xml) print(d) f.close() pp = pprint.PrettyPrinter(indent=0) pp.pprint(d)
参考文献: 1、《python从菜鸟到高手》,作者:李宁