def parse(self, inputstring, document): self.setup_parse(inputstring, document) settings = document.settings.copy() settings._source_name = document.current_source xsltParams = { } for ( key, val ) in settings.__dict__.items(): if isinstance(val, bool): fmt = '%s' if val: val = 'true()' else: val = 'false()' elif isinstance(val, ( int, long )): fmt = '%d' elif isinstance(val, float): fmt = '%G' elif isinstance(val, basestring): val = unicode(val) if "'" in val: if '"' in val: raise ValueError("Can not use string containing single and double quote as XSLT parameter ('%r')" % ( val, )) fmt = '"%s"' else: fmt = "'%s'" else: continue xsltParams[key] = fmt % ( val, ) inDoc = etree.fromstring(encodeForXmlParser(inputstring)) document.xslt_result = self.xslt(inDoc, **xsltParams) if self.xslt.error_log: document.reporter.error(self.xslt.error_log) self.finish_parse()
def parse(self, inputstring, document): self.setup_parse(inputstring, document) self.uri2Prefixes.etreeRegister() inDoc = etree.fromstring(encodeForXmlParser(inputstring)) self.walk(inDoc, self.visitorClass(self.uri2Prefixes, document)) self.finish_parse()