zoukankan      html  css  js  c++  java
  • Python的XML解析!

    #   解析XML内容
    from xml.sax import parse               #   分析文本用的模块
    from xml.sax import ContentHandler      #   内容处理类
    # <root>
    #     <student id='张三'>
    #         <name>张三</name>
    #         <sex>男</sex>
    #         <age>20</age>
    #     </student>
    class MyPar(ContentHandler):
        def __init__(self):
            ContentHandler.__init__(self)
            self.tag_name   = ''    # 元素标签
    self.count_name = ''    # 张三
    self.count_sex  = ''    # 性别
    self.count_age  = ''    # 年龄
    def startElement(self, name, attrs):
            self.tag_name = name    #   获取标签名
    if self.tag_name == 'student':
                print('*'*20)
                print("id:",attrs['id'])
    
        def characters(self, content):
            if self.tag_name == 'name':
                self.count_name = content
    
            if self.tag_name == 'sex':
                self.count_sex = content
    
            if self.tag_name == 'age':
                self.count_age = content
    
        def endElement(self, name):
            if name == 'name':
                print("   name:",self.count_name)
    
            if name == 'sex':
                print("    sex:",self.count_sex)
    
            if name == 'age':
                print("    age:", self.count_age)
    
            self.tag_name = ''
    if __name__ == '__main__':
        p = MyPar()
        parse('stu.xml',p)
    
    
    
    
    
    from xml.sax import parse               #   导入解析包(分析文本用的模块)
    from xml.sax import ContentHandler      #   导入内容处理类
    # <root name="中国">
    #   <province name="北京市">
    #     <city name="北京市" index="1">
    #       <area name="东城区" index="1" />
    class MyHader(ContentHandler):
        def __init__(self):
            ContentHandler.__init__(self)
            self.tag_name = ''
    def startElement(self, name, attrs):
            self.tag_name = name
            if self.tag_name == 'root':
                print("国家:",attrs['name'])
    
            if self.tag_name == 'province':
                print("  省:",attrs['name'])
    
            if self.tag_name == "city":
                print("      市:",attrs['name'],attrs['index'])
    
            if self.tag_name == "area":
                print("          区(县):",attrs['name'],attrs['index'])
    
        def endElement(self, name):
            self.tag_name = ''
    if __name__ == '__main__':
        p = MyHader()
        parse('city.xml',p)
  • 相关阅读:
    洛谷 P1396 营救(二分答案)
    洛谷 P1807 最长路(toposort)
    洛谷 P1137 旅行计划(toposort)
    [bzoj3032][TYVJ P1924]七夕祭(环形均分纸牌,货仓选址)
    BZOJ3043 IncDec Sequence (差分)
    BZOJ2200 道路与航线(dijk+拓扑排序)
    P1462 通往奥格瑞玛的道路(二分+dijkstra)
    P1020 导弹拦截 O(nlogn)做法
    背包整理(01背包,完全背包,多重背包,分组背包)(待更新)
    [模板]树链剖分
  • 原文地址:https://www.cnblogs.com/Tridents/p/9123416.html
Copyright © 2011-2022 走看看