使用xml.dom解析xml
文件对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展置标语言的标准编程接口。
一个 DOM 的解析器在解析一个 XML 文档时,一次性读取整个文档,把文档中所有元素保存在内存中的一个树结构里,之后你可以利用DOM 提供的不同的函数来读取或修改文档的内容和结构,也可以把修改过的内容写入xml文件。
python中用xml.dom.minidom来解析xml文件,实例如下:
实例
#!/usr/bin/python# -*- coding: UTF-8 -*-fromxml.dom.minidomimportparseimportxml.dom.minidom# 使用minidom解析器打开 XML 文档DOMTree = xml.dom.minidom.parse("movies.xml")collection = DOMTree.documentElementifcollection.hasAttribute("shelf"): print"Root element : %s" % collection.getAttribute("shelf")# 在集合中获取所有电影movies = collection.getElementsByTagName("movie")# 打印每部电影的详细信息formovieinmovies: print"*****Movie*****" ifmovie.hasAttribute("title"): print"Title: %s" % movie.getAttribute("title") type = movie.getElementsByTagName('type')[0] print"Type: %s" % type.childNodes[0].data format = movie.getElementsByTagName('format')[0] print"Format: %s" % format.childNodes[0].data rating = movie.getElementsByTagName('rating')[0] print"Rating: %s" % rating.childNodes[0].data description = movie.getElementsByTagName('description')[0] print"Description: %s" % description.childNodes[0].data
以上程序执行结果如下:
Root element :NewArrivals
*****Movie*****
Title:EnemyBehind
Type:War,Thriller
Format: DVD
Rating: PG
Description:Talk about a US-Japan war
*****Movie*****
Title:Transformers
Type:Anime,ScienceFiction
Format: DVD
Rating: R
Description: A schientific fiction
*****Movie*****
Title:Trigun
Type:Anime,Action
Format: DVD
Rating: PG
Description:Vash the Stampede!
*****Movie*****
Title:Ishtar
Type:Comedy
Format: VHS
Rating: PG
Description:Viewable boredom