Beispiel #1
0
 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()
Beispiel #2
0
 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()
Beispiel #3
0
 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()