<?xml version="1.0" encoding="UTF-8" ?>
<dvds>
<dvd>
<name>简爱</name>
<price>300</price>
<state>1</state>
</dvd>
<dvd>
<name>简爱2</name>
<price>400</price>
<state>2</state>
</dvd>
<dvd>
<name>简爱3</name>
<price>500</price>
<state>3</state>
</dvd>
</dvds>
import xml.sax class dvdHandler(xml.sax.ContentHandler): def __init__(self): self.CurrentData="" self.name="" self.price="" self.state="" def startElement(self,tag): self.CurrentData=tag def characters(self,content): if self.CurrentData=="name": self.name=content if self.CurrentData=="price": self.price=content if self.CurrentData=="state": self.state=content def endElement(self,name): if self.CurrentData == "name": print('name:',self.name) if self.CurrentData == "price": print('price:',self.price) if self.CurrentData == "state": print('state:',self.state) self.CurrentData="" if __name__=='__main__': #create an XMLReader parser=xml.sax.make_parser() # namepaces 工作目录 工作空间 命名空间 parser.setFeature(xml.sax.handler.feature_namespaces,0) hadler=dvdHandler() # 覆盖其原来的ContentHandler parser.setContentHandler(hadler) parser.parse('dvd.xml')