Mercurial > dive4elements > gnv-client
view gnv/src/main/java/de/intevation/gnv/util/XSLTransformer.java @ 11:3cb753564552
Integration of the required XSL-Transformation of the Describe-Response of the Artifactdatabase
gnv/trunk@90 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Tim Englich <tim.englich@intevation.de> |
---|---|
date | Tue, 15 Sep 2009 14:19:55 +0000 |
parents | |
children | 2f4ae7d9e058 |
line wrap: on
line source
/** * */ package de.intevation.gnv.util; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.StringBufferInputStream; import java.io.UnsupportedEncodingException; import javax.xml.transform.Source; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerConfigurationException; import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerFactory; import javax.xml.transform.TransformerFactoryConfigurationError; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import javax.xml.transform.stream.StreamSource; import org.apache.log4j.Logger; import org.w3c.dom.Node; /** * @author Tim Englich <tim.englich@intevation.de> * */ public class XSLTransformer { /** * the logger, used to log exceptions and additonaly information */ private static Logger log = Logger.getLogger(XSLTransformer.class); /** * Constructor */ public XSLTransformer() { super(); } public String transform(Node toTransform, String encoding, String templateFileName){ String resultValue = null; try { XMLUtils xmlUtils = new XMLUtils(); Source templateSource = new StreamSource(new File(templateFileName)); TransformerFactory xformFactory = TransformerFactory.newInstance(); Transformer transformer = xformFactory.newTransformer(templateSource); ByteArrayOutputStream baos = new ByteArrayOutputStream(); StreamResult scrResult = new StreamResult(baos); log.debug(xmlUtils.writeNode2String(toTransform)); DOMSource source = new DOMSource(toTransform); transformer.transform(source, scrResult); resultValue = new String(baos.toByteArray(),encoding); } catch (TransformerConfigurationException e) { log.error(e,e); } catch (UnsupportedEncodingException e) { log.error(e,e); } catch (TransformerFactoryConfigurationError e) { log.error(e,e); } catch (TransformerException e) { log.error(e,e); } return resultValue; } }