libraries/edge/opensearch/isoresponse.py (30 lines of code) (raw):
import logging
from xml.dom.minidom import *
import xml.sax.saxutils
from jinja2 import Environment, Template
from edge.opensearch.response import Response
class IsoResponse(Response):
def __init__(self):
self.env = Environment()
self.env.trim_blocks = True
self.env.autoescape = True
self.variables = {}
def setTemplate(self, template):
self.template = self.env.from_string(template)
def addNamespace(self, name, uri):
self.namespaces[name] = uri
def removeNamespace(self, name):
del self.namespaces[name]
def generate(self, pretty=False):
logging.debug('IsoResponse.generate is called.')
if pretty:
try :
isoStr = self.template.render(self.variables).encode('utf-8').replace('\n', '')
except Exception as e:
logging.debug("Problem generating ISO " + str(e))
del self.variables['doc']
isoStr = self.template.render(self.variables).encode('utf-8').replace('\n', '')
document = xml.dom.minidom.parseString(isoStr)
return document.toprettyxml()
else:
return self.template.render(self.variables).replace('\n', '')