# 解析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)