python错误代码40035_Python 创建XML
xml.dom.minidom模塊實(shí)現(xiàn)創(chuàng)建一個XML文檔。
創(chuàng)建XML的過程
1、內(nèi)存數(shù)據(jù)產(chǎn)生
2、產(chǎn)生xml內(nèi)存對象(也就是DOM樹)
3、產(chǎn)生根對象
4、往根對象里加數(shù)據(jù)
5、把xml內(nèi)存對象寫到文件
下面是一個創(chuàng)建xml文檔的簡單實(shí)例:
import xml.dom.minidom
#在內(nèi)存中創(chuàng)建一個空的文檔
doc = xml.dom.minidom.Document()
#創(chuàng)建一個根節(jié)點(diǎn)Managers對象
root = doc.createElement('Managers')
#設(shè)置根節(jié)點(diǎn)的屬性
root.setAttribute('company', 'xx科技')
root.setAttribute('address', '科技軟件園')
#將根節(jié)點(diǎn)添加到文檔對象中
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è)置一個文本節(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)
#開始寫xml文檔
fp = open('c:\\wcx\\Manager.xml', 'w')
doc.writexml(fp, indent='\t', addindent='\t', newl='\n', encoding="utf-8")
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
執(zhí)行結(jié)果:
joy
27
女
tom
30
男
ruby
29
女
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
用Python自帶的寫xml文檔的API去寫,比較方便,后期容易維護(hù)。如果直接用打開文件的方式,一行一行的去寫,比較費(fèi)時,也難以維護(hù)。
xml.dom模塊創(chuàng)建xml的部分API
minidom.Document()
創(chuàng)建一個空白xml文檔樹對象。
每個xml文檔都是一個Document對象,代表著內(nèi)存中的DOM樹。
doc. createElement(tagName)
生成xml文檔節(jié)點(diǎn)。參數(shù)表示要生成節(jié)點(diǎn)的名稱。
如:(注意這里使用的例子都來自于上面創(chuàng)建xml文檔的程序中,下同)
#創(chuàng)建一個根節(jié)點(diǎn)Managers對象
root = doc.createElement('Managers')
1
2
3
node.setAttribute(attname, value)
給節(jié)點(diǎn)添加屬性值對(Attribute)。
參數(shù)說明:
attname :屬性的名稱
value :屬性的值
如:
設(shè)置根節(jié)點(diǎn)的屬性:
root.setAttribute('company', 'xx科技')
1
doc.createTextNode(data)
給葉子節(jié)點(diǎn)添加文本節(jié)點(diǎn)。如:
#給葉子節(jié)點(diǎn)name設(shè)置一個文本節(jié)點(diǎn),用于顯示文本內(nèi)容
nodeName.appendChild(doc.createTextNode(str(i['name'])))
1
2
3
node.appendChild(node1)
將節(jié)點(diǎn)node1t添加到節(jié)點(diǎn)node下。如:
#將葉子節(jié)點(diǎn)nodeName添加到父節(jié)點(diǎn)nodeManager下
nodeManager.appendChild(nodeName)
1
2
3
doc. writexml()
函數(shù)原型:
writexml(writer, indent='', addindent='', newl='', encoding=None)
1
將內(nèi)存中xml文檔樹寫入文件中。
參數(shù)說明:
writer :要寫的目標(biāo)文件的文件對象。
indent :
fp = open('c:\\Manager.xml', 'w')
doc.writexml(fp, indent='', addindent='\t', newl='\n', encoding="utf-8")
---------------------
作者:世界看我我看世界
來源:CSDN
原文:https://blog.csdn.net/seetheworld518/article/details/49535285
版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請附上博文鏈接!
總結(jié)
以上是生活随笔為你收集整理的python错误代码40035_Python 创建XML的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql數據庫的增刪改查_MySQL數
- 下一篇: vue 给标签添加data属性_vue之