import xml.sax
class XmlParser(xml.sax.ContentHandler):
def __init__(self):
self.type=""
self.format=""
self.year=""
self.rating=""
self.stars=""
self.description=""
# 选取节点
def startElement(self, name, attrs):
self.curentData = name
if name=="movie":
title=attrs["title"]
print(title)
# 解析节点元素
def endElement(self, name):
if self.curentData=="type":
print("type:",self.type)
if self.curentData=="format":
print("format:",self.format)
if self.curentData == "year":
print("year:", self.year)
if self.curentData=="rating":
print("rating:",self.rating)
if self.curentData=="stars":
print("stars:",self.stars)
if self.curentData=="description":
print("description:",self.description)
self.curentData=""
# 解析元素内容
def characters(self, content):
if self.curentData=="type":
self.type=content
if self.curentData=="format":
self.format=content
if self.curentData=="year":
self.year=content
if self.curentData=="rating":
self.rating=content
if self.curentData=="stars":
self.stars=content
if self.curentData=="description":
self.description=content
if __name__=="__main__":
#创建解析器
parser=xml.sax.make_parser()
handler=XmlParser()#处理器
parser.setContentHandler(handler)#设置处理器
parser.parse("movies.xml")
#原文档
<?xml version="1.0" encoding="UTF-8"?> <collection shelf="New Arrivals"> <movie title="Enemy Behind"> <type>War, Thriller</type> <format>DVD</format> <year>2003</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> <year>2001</year> <rating>PG</rating> <stars>10</stars> <description>Vash the Stampede!</description> </movie> <movie title="Ishtar"> <type>Comedy</type> <format>VHS</format> <year>2002</year> <rating>PG</rating> <stars>2</stars> <description>Viewable boredom</description> </movie> </collection>
本文介绍了一个使用Python的xml.sax模块创建的XML解析器实例。该解析器能够读取并解析包含电影信息的XML文件,提取电影类型、格式、年份、评级、星级和描述等关键信息。
98

被折叠的 条评论
为什么被折叠?



