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', '    ', '
    ']
    正是江南好风景
  • 相关阅读:
    Spring Controller参数为空串的处理方式
    netstat用法
    zookeeper的配置项
    C++ Lambda表达式用法
    java命令行运行jar里的main类
    Random的nextInt用法
    【JAVA】删除某个目录及目录下的所有子目录和文件
    Centos7设置keepAlived开机自启动
    linux设置nginx开机自启动
    window.open()方法
  • 原文地址:https://www.cnblogs.com/monsterhy123/p/12952019.html
Copyright © 2011-2022 走看看