in libraries/edge/opensearch/rssresponse.py [0:0]
def generate(self, pretty=False):
logging.debug('RssResponse.generate is called.')
document = Document()
rss = document.createElement('rss')
rss.setAttribute('version', '2.0')
for namespace in list(self.namespaces.keys()):
rss.setAttribute('xmlns:'+namespace, self.namespaces[namespace])
document.appendChild(rss)
channel = document.createElement('channel')
rss.appendChild(channel)
title = document.createElement('title')
channel.appendChild(title)
title.appendChild(document.createTextNode(xml.sax.saxutils.escape(self.title)))
description = document.createElement('description')
channel.appendChild(description)
description.appendChild(document.createTextNode(xml.sax.saxutils.escape(self.description)))
link = document.createElement('link')
channel.appendChild(link)
link.appendChild(document.createTextNode(xml.sax.saxutils.escape(self.link)))
for variable in self.variables:
'''
elementName = variable['name']
if 'namespace' in variable:
elementName = variable['namespace']+':'+elementName
variableElement = document.createElement(elementName)
channel.appendChild(variableElement)
variableElement.appendChild(document.createTextNode(xml.sax.saxutils.escape(str(variable['value']))))
'''
self._createNode(document, variable, channel)
for item in self.items:
itemElement = document.createElement('item')
channel.appendChild(itemElement)
for itemEntry in item:
self._createNode(document, itemEntry, itemElement);
'''
elementName = itemEntry['name']
if 'namespace' in itemEntry:
elementName = itemEntry['namespace']+':'+elementName
variableElement = document.createElement(elementName)
itemElement.appendChild(variableElement)
value = itemEntry['value']
if isinstance(value, list):
if len(value) > 1:
for valueEntry in value:
valueName = 'value'
if 'namespace' in itemEntry:
valueName = itemEntry['namespace']+':'+valueName
valueElement = document.createElement(valueName)
variableElement.appendChild(valueElement)
valueElement.appendChild(document.createTextNode(xml.sax.saxutils.escape(str(valueEntry))))
else:
variableElement.appendChild(document.createTextNode(xml.sax.saxutils.escape(str(value[0]))))
elif isinstance(value, dict):
for key in value.keys():
valueName = key
if 'namespace' in itemEntry:
valueName = itemEntry['namespace']+':'+valueName
valueElement = document.createElement(valueName)
variableElement.appendChild(valueElement)
valueElement.appendChild(document.createTextNode(xml.sax.saxutils.escape(str(value[key]))))
else:
variableElement.appendChild(document.createTextNode(xml.sax.saxutils.escape(str(value))))
'''
return document.toprettyxml() if pretty else document.toxml('utf-8')