一、DOM寫XML文件
#導入minidom from xml.dom import minidom # 1.創建DOM樹對象 dom=minidom.Document() # 2.創建根節點。每次都要用DOM對象來創建任何節點。 root_node=dom.createElement('root') # 3.用DOM對象添加根節點 dom.appendChild(root_node) # 用DOM對象創建元素子節點 book_node=dom.createElement('book') # 用父節點對象添加元素子節點 root_node.appendChild(book_node) # 設置該節點的屬性 book_node.setAttribute('price','199') name_node=dom.createElement('name') root_node.appendChild(name_node) # 也用DOM創建文本節點,把文本節點(文字內容)看成子節點 name_text=dom.createTextNode('計算機程序設計語言 第1版') # 用添加了文本的節點對象(看成文本節點的父節點)添加文本節點 name_node.appendChild(name_text) # 每一個結點對象(包括dom對象本身)都有輸出XML內容的方法,如:toxml()--字符串, toprettyxml()--美化樹形格式。 try: with open('dom_write.xml','w',encoding='UTF-8') as fh: # 4.writexml()第一個參數是目標文件對象,第二個參數是根節點的縮進格式,第三個參數是其他子節點的縮進格式, # 第四個參數制定了換行格式,第五個參數制定了xml內容的編碼。 dom.writexml(fh,indent='',addindent='\t',newl='\n',encoding='UTF-8') print('OK') except Exception as err: print('錯誤:{err}'.format(err=err))
結果如下:
<?xml version="1.0" encoding="utf8"?> <root> <book price="99"> <name>計算機程序設計語言 第1版</name> </book> </root>
二、DOM解析XML文件
from xml.dom import minidom # 第1步:parse()工廠方法獲取DOM對象 dom=minidom.parse('dom_write.xml') # 第2步:要獲取某個元素節點的文本內容,就通過DOM對象,先獲取該元素節點,再獲取子文本節點,最后通過“data”屬性獲取文本內容(注意返回的是列表) author=dom.getElementsByTagName('author')[0].childNodes[0].data print(author) # 其他屬性與方法: # 獲取根節點 root=dom.documentElement # 節點名稱 print(root.nodeName) # 節點類型:'ELEMENT_NODE',元素節點; 'TEXT_NODE',文本節點; 'ATTRIBUTE_NODE',屬性節點 print(root.nodeType) # 獲取某個節點下所有子節點,是個列表 print(root.childNodes) # 根據標簽名獲取元素節點,是個列表 book=root.getElementsByTagName('book') # 獲取節點屬性 print(book[0].getAttribute('price')) # 獲取某節點的父節點 print(author.parentNode.nodeName)
至此。轉載請注明出處,記得掃碼打賞支持哦,謝謝!