• SAX解析XML文件


     1 import xml.sax
     2 import sys
     3 get_record=[]
     4 class GetStorehouse(xml.sax.ContentHandler):
     5     def __init__(self):
     6         self.CurrentData=""
     7         self.title=""
     8         self.name=""
     9         self.amount=""
    10         self.price=""
    11     def startElement(self,label,attributes):
    12         self.CurrentData=label
    13         if label=="goods": #子元素的开始标签
    14            category=attributes["category"]
    15            return category
    16     def endElement(self,label):
    17         global get_record 
    18         if self.CurrentData=="title":
    19             get_record.append(self.title)
    20         elif self.CurrentData=="name":
    21             get_record.append(self.name)
    22         elif self.CurrentData=="amount":
    23             get_record.append(self.amount)
    24         elif self.CurrentData=="price":
    25             get_record.append(self.price)
    26     def characters(self,content):
    27         if self.CurrentData=="title":
    28             self.title=content
    29         elif self.CurrentData=="name":
    30             self.name=content
    31         elif self.CurrentData=="amount":
    32             self.amount=content
    33         elif self.CurrentData=="price":
    34             self.price=content
    35 #=============================================================================
    36 parser=xml.sax.make_parser() #创建一个解析器的XMLReader对象
    37 parser.setFeature(xml.sax.handler.feature_namespaces,0)#从XML文件解析数据,关闭从命名空间解析
    38 Handler=GetStorehouse()   #建立事件处理器实例
    39 parser.setContentHandler(Handler)
    40 parser.parse("storehouse.xml")
    41 print(get_record)
    ['淡水鱼', '鲫鱼', '18', '8', '    ', '温带水果', '猕猴桃', '10', '10', '    ', '
    ']
    正是江南好风景
  • 相关阅读:
    usaco contest
    chapter 2.getting started
    几种常见排序
    [usaco]Programming Contest Problem Types
    回溯实现组合问题
    第二章:循环结构程序设计
    第一章:程序设计入门
    第三章:数组和字符串
    数据库设计(一对一、一对多、多对多)
    linux与windows回车换行符的区别
  • 原文地址:https://www.cnblogs.com/monsterhy123/p/12952019.html
Copyright © 2020-2023  润新知