import StringIO
from xml.sax import *
class MyHandler(ContentHandler):
def startDocument(self):
start = 'start'
print(start.center(13, '*'))
print('-' * 13)
print('name\tquality')
print('-' * 13)
def endDocument(self):
end = 'end'
print('-' * 13)
print(end.center(13, '*'))
def startElement(self, name, attrs):
if name == 'shirt':
print('%s\t%s' % (attrs['name'], attrs['quality']))
parser = make_parser()
parser.setContentHandler(MyHandler())
## xml data
data = """
<goods>
<shirt name='Helen' quality='A' />
<shirt name='Fayer' quality='A+' />
<coat name='Dayie' quality='B+' />
<shirt name='CaC' quality='A-' />
</goods>
"""
parser.parse(StringIO.StringIO(data))
在python 3.8.6中出错
错误信息:
ModuleNotFoundError: No module named 'StringIO'
将
import StringIO 改为 import io
parser.parse(StringIO.StringIO(data)) 改为 parser.parse(io.StringIO(data))
运行成功
结果为: