sax EntityResolver problem (expat?)

chris csad7 at
Thu Jun 10 22:04:20 CEST 2004

sax beginner question i must admit:

i try to filter a simple XHTML document with a standard DTD declaration 
(<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"">) in it.
sax gives the following error

 >>> xml.sax._exceptions.SAXParseException: <unknown>:53:8: undefined entity

which is an &nbsp; entity.
so i thought i just implement the EntityResolver class and use a local 
copy of the DTD

# ========================
class XHTMLResolver(xml.sax.handler.EntityResolver, object):

     def resolveEntity(self, publicId, systemId):
         return 'http://localhost/xhtml1-transitional.dtd'

reader = xml.sax.make_parser()
# ========================

problem is, it seems expat does not use this resolver as i get the same 
error again. i also tried the following, which is not supported anyhow:

 >>> xml.sax._exceptions.SAXNotSupportedException: expat does not read 
external parameter entities

is the XHTMLResolver class not the way it should be? or do i have to set 
another feature/property?

ultimately i do not want to use the http://localhost copy but i would 
like to read the local file (just with open(...) or something) and go 
from there. is that possible? do i have to

thanks a lot

More information about the Python-list mailing list