<?
xml version
="1.0"
encoding
="UTF-8"
?>
<
collection
shelf
= "New Arrivals"
>
<
movie
title
= "Enemy Behind"
>
<
type
>War, Thriller
</
type
>
<
format
>DVD
</
format
>
<
year
>2013
</
year
>
<
rating
>PG
</
rating
>
<
stars
>10
</
stars
>
<
description
>Talk about a US-Japan war
</
description
>
</
movie
>
<
movie
title
= "Transformers"
>
<
type
>Anime, Science Fiction
</
type
>
<
format
>DVD
</
format
>
<
year
>1989
</
year
>
<
rating
>R
</
rating
>
<
stars
>8
</
stars
>
<
description
>A schientific fiction
</
description
>
</
movie
>
<
movie
title
= "Trigun"
>
<
type
>Anime, Action
</
type
>
<
format
>DVD
</
format
>
<
episodes
>4
</
episodes
>
<
rating
>PG
</
rating
>
<
stars
>10
</
stars
>
<
description
>Vash the Stampede!
</
description
>
</
movie
>
<
movie
title
= "Ishtar"
>
<
type
>Comedy
</
type
>
<
format
>VHS
</
format
>
<
rating
>PG
</
rating
>
<
stars
>2
</
stars
>
<
description
>Viewable boredom
</
description
>
</
movie
>
</collection>
import mn.sax class MovieHandler(mn.sax.ContentHandler): def __init__(self): self.CurrentData = "" self.type = "" self.format = "" self.year = "" self.rating = "" self.stars = "" self.description = "" # Call when an element starts def startElement(self, tag, attributes): self.CurrentData = tag if tag == "movie": print ("*****Movie*****") title = attributes["title"] print ("Title:", title) # Call when an elements ends 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 = "" # Call when a character is read 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__"): # create an XMLReader parser = mn.sax.make_parser() # turn off namepsaces parser.setFeature(mn.sax.handler.feature_namespaces, 0) # override the default ContextHandler Handler = MovieHandler() parser.setContentHandler( Handler )
parser.parse("movies.xml")