基本的固定格式就这么写的:
(边读边解析,占用内存小,解析快,缺点是需要自己处理事件)
import string
from xml.parsers.expat import ParserCreate
class DefaultSaxHandler(object):
def start_element(self, name, attrs):
self.element = name
print('element: %s, attrs: %s' % (name, str(attrs)))
def end_element(self, name):
print('end element: %s' % name)
def char_data(self, text):
if text.strip():
print("%s's text is %s" % (self.element, text))
handler = DefaultSaxHandler()
parser = ParserCreate()
parser.StartElementHandler = handler.start_element
parser.EndElementHandler = handler.end_element
parser.CharacterDataHandler = handler.char_data
with open('book.xml', 'r') as f:
parser.Parse(f.read())