[XML-SIG] (no subject)
Lars Marius Garshol
larsga at ontopia.net
Mon Jan 5 10:34:47 EST 2004
* Andrew Maclean
|
| My problem is with the command "parse_resource", which results in a
| SystemExit error. The test xml file I use can be opened as a file
| and I can use the "feed" command within a while loop to do some
| simple parsing of it (this tells me it finds the file and links my
| XMLProcessor object to the MyApp object) but the minute I try and
| use "parse_resource('C:/test.xml')" it shuts down my Zope instance.
There is only one call to sys.exit() in the xmlproc source code, and
that's in the default ErrorHandler. Probably the problem is that you
are passing an XML document that is not well-formed to xmlproc.
Try adding this to your source code
# --------------------------------------------------
class MyErrorHandler:
def __init__(self,locator):
self.locator=locator
def set_locator(self,loc):
self.locator=loc
def get_locator(self):
return self.locator
def warning(self,msg):
"Handles a non-fatal error message."
pass
def error(self,msg):
self.fatal(msg)
def fatal(self,msg):
"Handles a fatal error message."
if self.locator==None:
print "ERROR: "+msg
else:
print "ERROR: "+msg+" at %s:%d:%d" % (self.locator.get_current_sysid(),\
self.locator.get_line(),\
self.locator.get_column())
print "TEXT: '%s'" % (self.locator.data[self.locator.pos:\
self.locator.pos+10])
# --------------------------------------------------
Then change the script as following:
| file = 'C:/Andy/XSL/test.xml'
| p = xmlproc.XMLProcessor()
| p.set_application(MyApp())
p.set_error_handler(MyErrorHandler())
| try:
| p.parse_resource(file)
| except IOError, (errno, strerror):
| print "I/O error(%s): %s" % (errno, strerror)
| except ValueError:
| print "Could not convert data to an integer."
| except:
| print "Unexpected error:", sys.exc_info()[0]
| raise
| print
That should give you an error message when parsing stops because of
the error, and it should take away the sys.exit() call. You can change
where the error message is printed to, of course, if you want.
--
Lars Marius Garshol, Ontopian <URL: http://www.ontopia.net >
GSM: +47 98 21 55 50 <URL: http://www.garshol.priv.no >
More information about the XML-SIG
mailing list