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;
+    }
+
+}

http://dive4elements.wald.intevation.org