def __request_xml(self, url): y = urllib.urlopen(url) ret = y.read() y.close() parser = XMLTreeBuilder(html=True) parser.entity = self.entities parser.feed(ret) return parser.close()
def parseXRDS(text): """Parse the given text as an XRDS document. @return: ElementTree containing an XRDS document @raises XRDSError: When there is a parse error or the document does not contain an XRDS. """ try: parser = XMLTreeBuilder() parser.feed(text) element = parser.close() except XMLError, why: exc = XRDSError('Error parsing document as XML') exc.reason = why raise exc
def body(self, xml): """ Body importer """ if isinstance(xml, (str, unicode)): parser = XMLTreeBuilder() parser.feed(xml) tree = parser.close() tree = ElementTree(tree) elem = tree.getroot() else: elem = xml if elem.tag != 'object': raise AttributeError('Invalid xml root element %s' % elem.tag) name = elem.get('name') if not name: raise AttributeError('No name provided for object') if hasattr(self.context, '__name__') and (name != self.context.__name__): raise AttributeError(('XML root object name %s ' 'should match context name %s') % (name, self.context.__name__)) for child in elem.getchildren(): if child.tag == 'property': self.attribute = child elif child.tag == 'object': self.child = child event.notify(ObjectModifiedEvent(self.context)) if INews.providedBy(self.context): logger.info('Commit transaction import for %s' % getattr( self.context, '__name__', '(no name)')) transaction.commit()
def close(self): val = XMLTreeBuilder.close(self) self.meldids = {} return val