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片段:

<?xml version="1.0" encoding="UTF-8"?>
<collection shelf="Arthur's Collection">
<drama title="24">
   <type>War, Thriller</type>
   <format>DVD</format>
   <year>2003</year>
   <rating>PG</rating>
   <stars>10</stars>
   <description>About counter terrorist unit</description>
</drama>

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

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,里面一个个地处理。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值