Index: Lib/xml/sax/expatreader.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/xml/sax/expatreader.py,v retrieving revision 1.22 diff -c -d -r1.22 expatreader.py *** Lib/xml/sax/expatreader.py 27 Jan 2001 09:01:20 -0000 1.22 --- Lib/xml/sax/expatreader.py 4 Apr 2002 05:21:31 -0000 *************** *** 17,22 **** --- 17,53 ---- import string + # --- ExpatLocator + + class ExpatLocator(xmlreader.Locator): + def __init__(self, parser): + self._ref = weakref.ref(parser) + + def getColumnNumber(self): + parser = self._ref() + if parser is None or parser._parser is None: + return None + return parser._parser.ErrorColumnNumber + + def getLineNumber(self): + parser = self._ref() + if parser is None or parser._parser is None: + return 1 + return self._parser.ErrorLineNumber + + def getPublicId(self): + parser = self._ref() + if parser is None: + return None + return parser._source.getPublicId() + + def getSystemId(self): + parser = self._ref() + if parser is None: + return None + return parser._source.getSystemId() + + # --- ExpatParser class ExpatParser(xmlreader.IncrementalParser, xmlreader.Locator): *************** *** 39,45 **** self._source = source self.reset() ! self._cont_handler.setDocumentLocator(self) xmlreader.IncrementalParser.parse(self, source) def prepareParser(self, source): --- 70,76 ---- self._source = source self.reset() ! self._cont_handler.setDocumentLocator(ExpatLocator(self)) xmlreader.IncrementalParser.parse(self, source) def prepareParser(self, source):