Mercurial > dive4elements > gnv-client
diff 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 diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gnv/src/main/java/de/intevation/gnv/util/XSLTransformer.java Tue Sep 15 14:19:55 2009 +0000 @@ -0,0 +1,66 @@ +/** + * + */ +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; + } + +}