#!/usr/bin/python
def xsl_transormation(xslfile, xmlfile = None, xmlstring = None, params={}):
from lxml import etree
import StringIO
xslt_tree = etree.XML(utils.readfile(xslfile))
transform = etree.XSLT(xslt_tree)
xml_contents = xmlstring
if not xml_contents:
if xmlfile:
xml_contents = utils.readfile(xmlfile)
else:
xml_contents = '<?xml version="1.0"?>\n<foo>A</foo>\n'
f = StringIO.StringIO(xml_contents)
doc = etree.parse(f)
f.close()
transform = etree.XSLT(xslt_tree)
result = transform(doc, **params)
return result