简单手写一个XML文件config.xml
<KDB>
<INFO>
<data>
<name>This is an XML file</name>
<number>123456789</number>
</data>
</INFO>
</KDB>
解析XML文件,提取name标签和number标签中的内容。
import xmltodict
import traceback
from xml.etree import ElementTree
g_AllParam = None
def getGlobalParam():
global g_AllParam
if g_AllParam is None:
cfg = ParseXml('./config.xml')
g_AllParam = cfg.getParam()
return g_AllParam
class ParseXml(object):
def __init__(self, filename):
try:
self.tree = ElementTree.parse(filename)
self.root = self.tree.getroot()
self.string = ElementTree.tostring(self.root, encoding='utf-8')
self.AllParam = self.xmltodict(self.string)
except:
print("======ParseXml __init__ err======")
print(traceback.format_exc())
self.AllParam = None
def xmltodict(self, string):
return xmltodict.parse(string)
def getParam(self):
return self.AllParam
if __name__ == '__main__':
param = getGlobalParam()
name = param['KDB']['INFO']['data']['name']
number = param['KDB']['INFO']['data']['number']
print(name)
print(number)
运行结果为:
This is an XML file
123456789