生成XML文件的
生成XML文件
import sys
class BuildNewXML(): # 自定义建立XML文件类
def __init__(self,filename = None):
self.filename = filename
self.__get_f = None # 自定义隐含属性(类内部使用)
def openfile(self): # 自定义打开xml类函数openfile
if self.filename == None:
print('没有提供文件名!请提供建立文件的名称!!!')
return False # 返回False并终止后续代码继续执行
try:
self.__get_f = open(self.filename,'a',encoding='utf-8') # 以追加写入方式打开一个文件,不存在则新建
except:
print('打开%s文件有问题!'%(self.filename))
return False
def writeXML(self,n,element): # 自定义写xml文件内容函数
try:
if n==0:
self.__get_f.write(element+'\n') # 根元素写入
else:
self.__get_f.write(' '*n+element+'\n') # 子元素写入
except:
print('往%s文件写%s出错!'%(self.filename,element))
sys.exit()
def closeXML(self): # 自定义关闭文件函数
if self.__get_f:
self.__get_f.close() # 关闭文件
#==============================================================================================
filename = "storehouse.xml"
flag = False # 判断xml文件操作是否正常标志
content = {1:[0,'<storeHouse>'],
2:[4,'<goods category="fish">'],
3:[8,'<title>淡水鱼</title>'],
4:[8,'<name>鲫鱼</name>'],
5:[8,'<amount>18</amount>'],
6:[8,'<price>8</price>'],
7:[4,'</goods>'],
8:[4,'<goods category="fruit">'],
9:[8,'<title>温带水果</title>'],
10:[8,'<name>猕猴桃</name>'],
11:[8,'<amount>10</amount>'],
12:[8,'<price>10</price>'],
13:[4,'</goods>'],
14:[0,'</storehouse>']
}
build_xml = BuildNewXML(filename) # 调用BuildNewXML类对象,即实例化一个对象,传递文件名
try:
build_xml.openfile() # 实例调用方法
for get_item in content.items(): # 循环读取要写入的字典对象元素
build_xml.writeXML(get_item[1][0],get_item[1][1]) # 写入xml文件
flag = True # 写正常,标志为True
except:
print('文件写入错误,退出程序')
sys.exit() # 退出程序
finally:
if flag: # 写xml文件正常
build_xml.closeXML() # 正常关闭
print('往%s写内容完成!'%(filename))
运行结果
<storeHouse>
<goods category="fish">
<title>淡水鱼</title>
<name>鲫鱼</name>
<amount>18</amount>
<price>8</price>
</goods>
<goods category="fruit">
<title>温带水果</title>
<name>猕猴桃</name>
<amount>10</amount>
<price>10</price>
</goods>
</storehouse>
正是江南好风景