XML格式
阿新 • • 發佈:2020-11-17
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寫內容完成