XML格式(有问题,待更)

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

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

(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,'<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)
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写内容完成
posted @ 2020-11-17 14:12  17。  阅读(103)  评论(0)    收藏  举报