下面以這個xml檔案為例:
<?xml version="1.0" encoding="utf-8"?>讀取xml檔案:war, thriller
***2003
pg10
talk about a us-japan war
*****, science fiction
***1989r8
a schientific fiction
*****, action
***4
pg10
vash the stampede!
comedy
vhspg
2viewable boredom
from elementtree import elementtree
root = elementtree.parse('movies.xml').getroot()
movies = root.findall('.//movie')
for movie in movies:
print '--------------------'
print '@title: ' + movie.attrib.get('title')
#access to element directly by using xpath
e_type = movie.find('.//type')
if(e_type != none):
print e_type.tag + ' : ' + e_type.text
for subelement in movie.getchildren():
print '\t' + subelement.tag + ' : ' + subelement.text
修改並儲存xml檔案:
from elementtree import elementtree
from elementtree.elementtree import element
root = elementtree.parse('movies.xml').getroot()
#create a child element
e_movie = element('movie')
#this is how you set an attribute on an element
e_movie.attrib['title'] = "test element"
e_type = element('type')
e_type.text = 'test element - type'
e_format = element('format')
e_format.text = 'test element - format'
e_year = element('year')
e_year.text = 'test element - year'
e_rating = element('rating')
e_rating.text = 'test element - rating'
e_stars = element('stars')
e_stars.text = 'test element - stars'
e_description = element('description')
e_description.text = 'test element - description'
#now lets write it to an .xml file on the hard drive
#open a file
file = open("movies2.xml", 'w')
#create an elementtree object from the root element
elementtree.elementtree(root).write(file)
#close the file like a good programmer
file.close()
如果要使用namespace的話,可以這樣:
e = root.find('.//yourelementname' % namespace)你可能會注意到,儲存後的xml檔案並沒有縮排對齊。很遺憾的是elementtree中沒有提供相應的方法來實現這個功能。如果你確實需要對齊縮排的話,可以使用lxml。關於 lxml的使用,請參考另一篇我的博文。
Python使用ElementTree解析XML
elementtree 元素樹 elementtree是xml解析庫,已經在python2.5之後被包括在標準庫中。elementtree感覺就像乙個輕量級的dom,具有方便使用 十分友好的api。除了 可復用之外,它執行速度快,消耗記憶體較少。這裡我們重點推薦使用elementtree。如果需要使...
python利用ElementTree讀寫xml
1.寫xml from xml.etree.elementtree import element,subelement,elementtree 生成根節點 root element root 生成第乙個子節點 head head subelement root,head head 節點的子節點 ti...
利用ElementTree讀寫XML檔案
在python中,對於xml的處理有很多模組,dom,sax,elementtree 或者對應的celementtree 等等,其中使用起來比較快捷方便的,應該算是elementtree了。似乎很多人懶得看e文的manual,呵呵,那我就總結一下個人的使用經驗。在python2.5的版本中,elem...