<?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')
这篇博客讲述了如何使用Python的xml.sax模块来解析包含DVD信息的XML文件。通过定义一个dvdHandler类,实现了对XML文件中'dvd'元素的'name'、'price'和'state'属性的抓取和打印。示例展示了如何处理'简爱'系列DVD的价格和状态。

13万+

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



