XML SAX - Simple API for XML
examples/xml/sax.py
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