python xml讀取和寫入

pythontab發表於2013-06-18

先說說如何建立一個XML檔案吧

# -*- coding: utf-8 -*-
from xml.dom import minidom
impl = minidom.getDOMImplementation()
dom = impl.createDocument(None, None, None)#namespaceURI, qualifiedName, doctype
#write to dom
root = dom.createElement("skills")
for skillid in range(10):
    skill= dom.createElement('skill')
    skill.setAttribute('id', str(skillid))
    root.appendChild( skill )
dom.appendChild( root )
#end write to dom
#writexml(writer, indent, addindent, newl, encoding)
#writer是檔案物件
#indent是每個tag前填充的字元,如:'  ',則表示每個tag前有兩個空格
#addindent是每個子結點的縮近字元
#newl是每個tag後填充的字元,如:'\n',則表示每個tag後面有一個回車
#encoding是生成的XML資訊頭中的encoding屬性值,
# 在輸出時minidom並不真正進行編碼的處理,如果你儲存的文字內容中有漢字,
# 則需要自已進行編碼轉換。
f=file('c:\\skills.xml','w')
dom.writexml(f,'',' ','\n','utf-8')
f.close()


這樣生成的XM瞭如下:

<?xml version="1.0" encoding="utf-8"?>

<skills>

<skill id="0"/>

<skill id="1"/>

<skill id="2"/>

<skill id="3"/>

<skill id="4"/>

<skill id="5"/>

<skill id="6"/>

<skill id="7"/>

<skill id="8"/>

<skill id="9"/>

</skills>

#######################

讀取XML

>>> dom = xml.dom.minidom.parse('c:/skills.xml')

>>> root = dom.documentElement

>>> root.nodeName

>>> r2.nodeName

u'skills'


相關文章