from xml.sax import make_parser
from xml.sax.handler import feature_external_ges
from xml.dom.pulldom import SAX2DOM
from StringIO import StringIO
class ContentHandler(SAX2DOM):
def skippedEntity(self, name):
print 'Skipping', name
def parse(s):
parser = make_parser()
parser.setContentHandler(ContentHandler())
parser.setFeature(feature_external_ges, False)
parser.parse(StringIO(s))
# This should print "Skipping baz" and then "Skipping quux". It only prints
# the latter, though.
print 'First case'
parse('''\
&quux;
''')
print 'Second case'
# This should do the same. Instead, it raises an exception.
parse('''\
&quux;
''')