import xml.sax
import sys
if len(sys.argv) != 2:
exit(f"Usage: {sys.argv[0]} FILENAME")
file = sys.argv[1]
class EventHandler(xml.sax.ContentHandler):
def startElement(self, name, attrs):
print('start', (name, attrs._attrs))
def characters(self, text):
if not text.isspace():
print('text', text)
def endElement(self, name):
print('end', name)
xml.sax.parse(file, EventHandler())
start (u'main', {})
start (u'person', {u'id': u'1'})
start (u'fname', {})
text Foo
end fname
start (u'lname', {})
text Bar
end lname
end person
start (u'person', {u'id': u'3'})
start (u'fname', {})
text Moo
end fname
start (u'lname', {})
text Zorg
end lname
start (u'email', {u'id': u'home'})
text moo@zorghome.com
end email
start (u'email', {u'id': u'work'})
text moo@work.com
end email
end person
end main