Expat - how to UseForeignDTD

B Mahoney mrbmahoney at gmail.com
Thu Oct 20 01:39:04 EDT 2005


I have a simple Kid template document:

<?xml version='1.0' encoding='utf-8'?>
<?python
import time
title = "A Kid &anything; Template"
?>
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:py="http://purl.org/kid/ns#"
>
... (snip)
</html>

This runs as expected but now I would like to load a DTD without
tampering with this xml file

In the expat parser __init__  after setting other handlers
for parser, I have added:
parser.ExternalEntityRefHandler = self._ExternalEntityRefHandler
parser.UseForeignDTD(1)  (also tried True)

Which I understand at some point will call
self._ExternalEntityRefHandler
with None for args and I must have code to get this other dtd.
I have done regular ExternalEntityRefHandlers before.

As required, these two lines occur before my Parse() call.
Perhaps I misunderstand the sequence, or need something more in my
xml file, but my _ExternalEntityRefHandler is never called.  The
process behaves as if I never added these two lines.

Help?




More information about the Python-list mailing list