teichmann@475: package org.dive4elements.artifacts.common.utils; sascha@382: sascha@382: import java.io.InputStream; sascha@382: import java.io.StringWriter; sascha@382: sascha@382: import java.util.HashMap; sascha@382: import java.util.Map; sascha@382: sascha@382: import javax.xml.transform.Source; sascha@382: import javax.xml.transform.Transformer; sascha@382: import javax.xml.transform.TransformerConfigurationException; sascha@382: import javax.xml.transform.TransformerException; sascha@382: import javax.xml.transform.TransformerFactory; sascha@382: sascha@382: import javax.xml.transform.dom.DOMSource; sascha@382: sascha@382: import javax.xml.transform.stream.StreamResult; sascha@382: import javax.xml.transform.stream.StreamSource; sascha@382: sascha@382: import org.apache.log4j.Logger; sascha@382: sascha@382: import org.w3c.dom.Node; sascha@382: sascha@394: public class XSLTransformer { sascha@382: sascha@382: private static Logger log = Logger.getLogger(XSLTransformer.class); sascha@382: sascha@385: protected Map parameters; sascha@382: sascha@382: public XSLTransformer() { sascha@382: } sascha@382: sascha@382: public String transform(Node source, InputStream transform) { sascha@382: sascha@382: try { sascha@382: Source templateSource = new StreamSource(transform); sascha@382: TransformerFactory xformFactory = sascha@382: TransformerFactory.newInstance(); sascha@382: Transformer transformer = sascha@382: xformFactory.newTransformer(templateSource); sascha@382: sascha@382: if (parameters != null) { sascha@385: for (Map.Entry entry: parameters.entrySet()) { sascha@382: transformer.setParameter(entry.getKey(), entry.getValue()); sascha@382: } sascha@382: } sascha@382: sascha@382: StringWriter result = new StringWriter(); sascha@382: sascha@382: DOMSource src = new DOMSource(source); sascha@382: StreamResult dst = new StreamResult(result); sascha@382: transformer.transform(src, dst); sascha@382: sascha@382: return result.toString(); sascha@382: } sascha@382: catch (TransformerConfigurationException tce) { sascha@382: log.error(tce, tce); sascha@382: } sascha@382: catch (TransformerException te) { sascha@382: log.error(te, te); sascha@382: } sascha@382: sascha@382: return null; sascha@382: } sascha@382: sascha@385: public void addParameter(String key, Object value) { sascha@382: if (parameters == null) { sascha@385: parameters = new HashMap(); sascha@382: } sascha@382: parameters.put(key, value); sascha@382: } sascha@382: } sascha@382: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :