新聞中心
XML.dom.minidom模塊實(shí)現(xiàn)創(chuàng)建一個(gè)XML文檔。

成都創(chuàng)新互聯(lián)公司專注于企業(yè)成都全網(wǎng)營(yíng)銷、網(wǎng)站重做改版、梁園網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5場(chǎng)景定制、商城網(wǎng)站定制開(kāi)發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為梁園等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。
創(chuàng)建XML的過(guò)程
1、內(nèi)存數(shù)據(jù)產(chǎn)生
2、產(chǎn)生xml內(nèi)存對(duì)象(也就是DOM樹(shù))
3、產(chǎn)生根對(duì)象
4、往根對(duì)象里加數(shù)據(jù)
5、把xml內(nèi)存對(duì)象寫(xiě)到文件
下面是一個(gè)創(chuàng)建xml文檔的簡(jiǎn)單實(shí)例:
import xml.dom.minidom
#在內(nèi)存中創(chuàng)建一個(gè)空的文檔
doc = xml.dom.minidom.Document()
#創(chuàng)建一個(gè)根節(jié)點(diǎn)Managers對(duì)象
root = doc.createElement('Managers')
#設(shè)置根節(jié)點(diǎn)的屬性
root.setAttribute('company', 'xx科技')
root.setAttribute('address', '科技軟件園')
#將根節(jié)點(diǎn)添加到文檔對(duì)象中
doc.appendChild(root)
managerList = [{'name' : 'joy', 'age' : 27, 'sex' : '女'},
{'name' : 'tom', 'age' : 30, 'sex' : '男'},
{'name' : 'ruby', 'age' : 29, 'sex' : '女'}
]
for i in managerList :
nodeManager = doc.createElement('Manager')
nodeName = doc.createElement('name')
#給葉子節(jié)點(diǎn)name設(shè)置一個(gè)文本節(jié)點(diǎn),用于顯示文本內(nèi)容
nodeName.appendChild(doc.createTextNode(str(i['name'])))
nodeAge = doc.createElement("age")
nodeAge.appendChild(doc.createTextNode(str(i["age"])))
nodeSex = doc.createElement("sex")
nodeSex.appendChild(doc.createTextNode(str(i["sex"])))
#將各葉子節(jié)點(diǎn)添加到父節(jié)點(diǎn)Manager中,
#最后將Manager添加到根節(jié)點(diǎn)Managers中
nodeManager.appendChild(nodeName)
nodeManager.appendChild(nodeAge)
nodeManager.appendChild(nodeSex)
root.appendChild(nodeManager)
#開(kāi)始寫(xiě)xml文檔
fp = open('c:\\wcx\\Manager.xml', 'w')
doc.writexml(fp, indent='\t', addindent='\t', newl='\n', encoding="utf-8")執(zhí)行結(jié)果:
joy 27 女 tom 30 男 ruby 29 女
用python自帶的寫(xiě)xml文檔的API去寫(xiě),比較方便,后期容易維護(hù)。如果直接用打開(kāi)文件的方式,一行一行的去寫(xiě),比較費(fèi)時(shí),也難以維護(hù)。
xml.dom模塊創(chuàng)建xml的部分API
minidom.Document()
創(chuàng)建一個(gè)空白xml文檔樹(shù)對(duì)象。
每個(gè)xml文檔都是一個(gè)Document對(duì)象,代表著內(nèi)存中的DOM樹(shù)。
doc. createElement(tagName)
生成xml文檔節(jié)點(diǎn)。參數(shù)表示要生成節(jié)點(diǎn)的名稱。
如:(注意這里使用的例子都來(lái)自于上面創(chuàng)建xml文檔的程序中,下同)
#創(chuàng)建一個(gè)根節(jié)點(diǎn)Managers對(duì)象
root = doc.createElement('Managers')node.setAttribute(attname, value)
給節(jié)點(diǎn)添加屬性值對(duì)(Attribute)。
參數(shù)說(shuō)明:
attname :屬性的名稱
value :屬性的值
如:
設(shè)置根節(jié)點(diǎn)的屬性:
root.setAttribute('company', 'xx科技')doc.createTextNode(data)
給葉子節(jié)點(diǎn)添加文本節(jié)點(diǎn)。如:
#給葉子節(jié)點(diǎn)name設(shè)置一個(gè)文本節(jié)點(diǎn),用于顯示文本內(nèi)容 nodeName.appendChild(doc.createTextNode(str(i['name'])))
node.appendChild(node1)
將節(jié)點(diǎn)node1t添加到節(jié)點(diǎn)node下。如:
#將葉子節(jié)點(diǎn)nodeName添加到父節(jié)點(diǎn)nodeManager下 nodeManager.appendChild(nodeName)
doc. writexml()
函數(shù)原型:
writexml(writer, indent='', addindent='', newl='', encoding=None)
將內(nèi)存中xml文檔樹(shù)寫(xiě)入文件中。
參數(shù)說(shuō)明:
writer :要寫(xiě)的目標(biāo)文件的文件對(duì)象。
indent :
fp = open('c:\\Manager.xml', 'w')
doc.writexml(fp, indent='', addindent='\t', newl='\n', encoding="utf-8")python學(xué)習(xí)網(wǎng),免費(fèi)的在線學(xué)習(xí)python平臺(tái),歡迎關(guān)注!
網(wǎng)頁(yè)題目:創(chuàng)新互聯(lián)Python教程:如何用python生成xml
URL分享:http://m.5511xx.com/article/cdpehig.html


咨詢
建站咨詢
