monsterhy123

生成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>

分类:

技术点:

相关文章: