python中xml解析sax_Python 解析XML实例(xml.sax)

已知movies.xml

War, Thriller

DVD

2003

PG

10

Talk about a US-Japan war

Anime, Science Fiction

DVD

1989

R

8

A schientific fiction

Anime, Action

DVD

4

PG

10

Vash the Stampede!

Comedy

VHS

PG

2

Viewable boredom

Python 解析XML实例

# -*- coding: UTF-8 -*-

import xml.sax

class MovieHandler( xml.sax.ContentHandler ):

def __init__(self):

self.CurrentData = ""

self.type = ""

self.format = ""

self.year = ""

self.rating = ""

self.stars = ""

self.description = ""

# 元素开始事件处理

def startElement(self, tag, attributes):

self.CurrentData = tag

if tag == "movie":

print("*****Movie*****")

title = attributes["title"]

print("Title:", title)

# 元素结束事件处理

def endElement(self, tag):

if self.CurrentData == "type":

print ("Type:", self.type)

elif self.CurrentData == "format":

print ("Format:", self.format)

elif self.CurrentData == "year":

print ("Year:", self.year)

elif self.CurrentData == "rating":

print( "Rating:", self.rating)

elif self.CurrentData == "stars":

print( "Stars:", self.stars)

elif self.CurrentData == "description":

print ("Description:", self.description)

self.CurrentData = ""

# 内容事件处理

def characters(self, content):

if self.CurrentData == "type":

self.type = content

elif self.CurrentData == "format":

self.format = content

elif self.CurrentData == "year":

self.year = content

elif self.CurrentData == "rating":

self.rating = content

elif self.CurrentData == "stars":

self.stars = content

elif self.CurrentData == "description":

self.description = content

if ( __name__ == "__main__"):

# 创建一个 XMLReader

parser = xml.sax.make_parser()

# turn off namepsaces

parser.setFeature(xml.sax.handler.feature_namespaces, 0)

# 重写 ContextHandler

Handler = MovieHandler()

parser.setContentHandler( Handler )

parser.parse("movies.xml")

结果:

*****Movie*****

Title: Enemy Behind

Type: War, Thriller

Format: DVD

Year: 2003

Rating: PG

Stars: 10

Description: Talk about a US-Japan war

*****Movie*****

Title: Transformers

Type: Anime, Science Fiction

Format: DVD

Year: 1989

Rating: R

Stars: 8

Description: A schientific fiction

*****Movie*****

Title: Trigun

Type: Anime, Action

Format: DVD

Rating: PG

Stars: 10

Description: Vash the Stampede!

*****Movie*****

Title: Ishtar

Type: Comedy

Format: VHS

Rating: PG

Stars: 2

Description: Viewable boredom

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值