python寫xml
- 2020 年 1 月 3 日
- 筆記
dom寫xml 1.引入包
import xml.dom.minidom
2.writexml方法
writexml(writer, indent, addindent, newl, encoding) writer是文件對象 indent是每個tag前填充的字元,如:' ',則表示每個tag前有兩個空格 addindent是每個子結點的縮近字元,如下面的例子中單引號中我直接用的tab鍵 newl是每個tag後填充的字元,如:'n',則表示每個tag後面有一個回車 encoding是生成的XML資訊頭中的encoding屬性值,在輸出時minidom並不真正進行編碼的處理,如果你保存的文本內容中有漢字,則需要自已進行編碼轉換。
3.直接上python程式碼
#xmlTest_write.py # -*- coding: utf-8 -*- import xml.dom.minidom #生成xml文件 def GenerateXml(): impl = xml.dom.minidom.getDOMImplementation() #設置根結點emps dom = impl.createDocument(None, 'emps', None) root = dom.documentElement employee = dom.createElement('emp') #增加屬性 employee.setAttribute("empno","1111") root.appendChild(employee) #設置子結點 #ename nameE=dom.createElement('ename') nameT=dom.createTextNode('傑克') nameE.appendChild(nameT) #子節點添加屬性 nameE.setAttribute("lastname","克") employee.appendChild(nameE) #age nameE=dom.createElement('age') nameT=dom.createTextNode('33') nameE.appendChild(nameT) employee.appendChild(nameE) f= open('emplist.xml', 'w') #w替換為a,追加 dom.writexml(f, addindent=' ', newl='n') f.close() GenerateXml()
4.運行結果,生成的emplist.xml文件
<?xml version="1.0" ?> <emps> <emp empno="1111"> <ename lastname="克">傑克</ename> <age>33</age> </emp> </emps>