使用ElementTree操作XML檔案

2021-08-31 14:49:10 字數 2302 閱讀 6796

下面以這個xml檔案為例:

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

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

讀取xml檔案:

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...