Python小结 - 访问XML



常见的XML编程接口有DOM和SAX。在Python中,有三种方法解析XML:SAX、DOM和ElementTree (Python 3)。

SAX (simple API for XML )
python 标准库包含SAX解析器,SAX用事件驱动模型,通过在解析XML的过程中触发一个个的事件并调用用户定义的回调函数来处理XML文件。

DOM(Document Object Model)
将XML数据在内存中解析成一个树,通过对树的操作来操作XML。

ElementTree(元素树)
ElementTree就像一个轻量级的DOM,具有方便友好的API。代码可用性好,速度快,消耗内存少。


下面代码仅演示Python 2.7.*里通过DOM来操作XML。

首先是XML片段:




   War, Thriller
   DVD
   2003
   PG
   10
   About counter terrorist unit

原理很简单:导入包,解析树(整个导入),获得句柄,再操作。

import xml.dom.minidom

DOMTree = xml.dom.minidom.parse("TVDramas.xml")
cc = DOMTree.documentElement

操作也超简单:

dramas = cc.getElementsByTagName("drama")
for drama in dramas:
    print "*****DRAMA*****"
    if drama.hasAttribute("title"):
        print "Title: %s" % drama.getAttribute("title")
    type = drama.getElementsByTagName('type')[0]
    print "Type: %s" % type.childNodes[0].data

句柄 getElementsByTagName,里面一个个地处理。




你可能感兴趣的:(Python)