Sax 解析器
代码
__age__ = '未昔/AngelFate'
__date__ = '2019/8/22 20:14'
from xml.sax import parse, ContentHandler
class Student:
def __init__(self,studentname=None,age=None,class_=None):
self.studentname=studentname
self.age=age
self.class_=class_
def __str__(self):
return self.studentname+","+self.age+","+self.class_
students=[]
class STdemo(ContentHandler):
def __init__(self):
self.student=None
self.tag=None
def startDocument(self):
print("对象开始")
def endDocument(self):
print("对象结束")
def startElement(self, name, attrs):
if name=='student':
self.student=Student()
def endElement(self, name):
if name=='studentname':
self.student.studentname=self.tag
if name=='age':
self.student.age=self.tag
if name=='class':
self.student.class_=self.tag
if name=='student':
students.append(self.student)
def characters(self, content):
self.tag=content
parse("E:\python\Study\小经验\data\student.xml",STdemo())
for i in students:
print(i)
结果
D:\import\python3.7\python.exe E:/python/Study/小经验/python对XML的解析/python对XML的解析-Sax解析器.py
对象开始
对象结束
张三,18,信管171
王洋,19,软件178
天天,21,网络177
Process finished with exit code 0