XML格式(有问题,待更)


XML(Extensible Markup Language,可扩展标记语言)


	
		淡水鱼
		鲫鱼
		18
		8
	
	
		温带水果
		猕猴桃
		10
		10
	

(1)根元素.任何XML数据文档必须包含根文档,示例根元素为...
(2)子元素. ...等都是子元素
(3)标签.带<>的为标签,为开始标签,为元素结束标签
(4)嵌套元素之间采用缩进格式,建议采用空4个空格的标准缩进格式
(5)属性
(6)文本

XML树形结构主要包括元素.属性.文本三要素

生成XML文件

import sys
class BuildNewXML():                            #自定义建立XML文件
    def __init__(self,filename=None):           #类的初始化保留__init__
        self.filename=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):
        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))          #写入出错提示
    def closeXML(self):
        if self.__get_f:                                                 #在正常打开文件情况下
            self.__get_f.close()                                         #关闭文件

#=============================================================
filename='storehouse.xml'
flag=False
content={1:[0,''],
         2:[4,''],
         3:[8,'淡水鱼'],
         4: [8, '鲫鱼'],
         5: [8, '18'],
         6: [8, '8'],
         7: [4, '/goods'],
         8 :[4, ''],
         9: [8, '温带水果'],
         10: [8, '猕猴桃'],
         11: [8, '10'],
         12: [8, '10'],
         13: [4, ''],
         14: [0, ''],
         }
build_xml=BuildNewXML(filename)
try:
    build_xml.openfile()
    for get_item in content.items():                        #循环读取写入字典对象元素
        build_xml.writeXML(get_item[1][0],get_item[1][1])   #写入XML文件
    flag=True
except:
    print('往文件里写内容出错,退出程序!')
    sys.exit()
finally:
    if flag:
        build_xml.closeXML()                                #正常关闭打开的XML文件
        print('往%s写内容完成'%(filename))

#执行结果:往storehouse.xml写内容完成