def parse(self, source): "Parse an XML document from a URL or an InputSource." self._source = saxutils.prepare_input_source(source) try: self._parser.parse(source) except SAXException, e: raise _exceptions.SAXException("", e)
def parse(self, source): source = prepare_input_source(source) self.prepareParser(source) file = source.getByteStream() buffer = file.read(self._bufsize) while buffer != "": self.feed(buffer) buffer = file.read(self._bufsize) self.close()
def fromStream(self, stream, ownerDoc=None): self.handler.initState(ownerDoc=ownerDoc) #self.parser.parseFile(stream) s = saxutils.prepare_input_source(stream) self.parser.parse(s) rt = self.handler.getRootNode() #if hasattr(self.parser.parser,'deref'): # self.parser.parser.deref() #self.parser.parser = None #self.parser = None #self.handler = None return rt
def parse(self, source): "Parse an XML document from a URL or an InputSource." source = saxutils.prepare_input_source(source) self._source = source self.reset() self._cont_handler.setDocumentLocator(ExpatLocator(self)) try: xmlreader.IncrementalParser.parse(self, source) finally: # Drop reference to Expat parser, but read potential # error state before that. Also, if close has completed, # we don't have a parser anymore, anyway. if self._parser: self._ColumnNumber = self._parser.ErrorColumnNumber self._LineNumber = self._parser.ErrorLineNumber self._parser = None
def external_entity_ref(self, context, base, sysid, pubid): if not self._external_ges: return 1 source = self._ent_handler.resolveEntity(pubid, sysid) source = saxutils.prepare_input_source(source, self._source.getSystemId() or "") self._entity_stack.append((self._parser, self._source)) self._parser = self._parser.ExternalEntityParserCreate(context) self._source = source try: xmlreader.IncrementalParser.parse(self, source) except: return 0 # FIXME: save error info here? (self._parser, self._source) = self._entity_stack[-1] del self._entity_stack[-1] return 1