zoukankan      html  css  js  c++  java
  • 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', '    ', '
    ']
    正是江南好风景
  • 相关阅读:
    下一座“金矿”:移动医疗的契机和风险
    android ViewStub简单介绍
    IT人员必须掌握的10项软技能
    Android ListView item 点击事件失效问题的解决
    前端之Android入门(3):MVC模式(上)
    Android 错误提示: Can't create handler inside thread that has not called Looper.prepare()
    Android 性能优化提示
    Android 学习资源
    元素水平对齐
    div垂直居中
  • 原文地址:https://www.cnblogs.com/monsterhy123/p/12952019.html
Copyright © 2011-2022 走看看