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