Mercurial > hg > fulltextSearchServer
view src/de/mpiwg/dwinter/fulltextSearchServer/Utils/XMLTools.java @ 0:db87c1b7eb6d
initial
author | dwinter |
---|---|
date | Wed, 03 Nov 2010 12:18:46 +0100 |
parents | |
children |
line wrap: on
line source
package de.mpiwg.dwinter.fulltextSearchServer.Utils; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; import java.io.StringWriter; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import javax.xml.transform.OutputKeys; 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.w3c.dom.Document; import org.xml.sax.SAXException; public class XMLTools { /** * @param xml String mit der XML-Datei * @param xslPath Pfad auf die XSL Datei im Classpath * @return xsl-transformiertes XML-File * @throws TransformerFactoryConfigurationError */ public static String transformToHTML(String xml, String xslPath) throws TransformerFactoryConfigurationError { // String txt = IOUtils.toString(new FileInputStream(file)); // get rid of the entities TransformerFactory tf = TransformerFactory.newInstance(); InputStream res = XMLTools.class.getResourceAsStream(xslPath); Transformer t; try { t = tf.newTransformer(new StreamSource(res)); } catch (TransformerConfigurationException e) { // TODO Auto-generated catch block e.printStackTrace(); return null; } //OutputStream output = new ByteArrayOutputStream(); //BufferedWriter sw = new BufferedWriter(new OutputStreamWriter(output, "utf-8")); DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); dbf.setNamespaceAware(true); dbf.setValidating(false); DocumentBuilder db; try { db = dbf.newDocumentBuilder(); } catch (ParserConfigurationException e) { // TODO Auto-generated catch block e.printStackTrace(); return null; } //db.setEntityResolver(new MyResolver()); Document doc; try { //stream = new StringInputStream(xml,"utf-8"); ByteArrayInputStream stream = new ByteArrayInputStream(xml.getBytes("utf-8")); doc = db.parse(stream); } catch (SAXException e) { // TODO Auto-generated catch block e.printStackTrace(); return null; } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); return null; } StringWriter sw = new StringWriter(); StreamResult sr = new StreamResult(sw); //org.w3c.dom.Document tgtDoc = db.newDocument(); //DocumentFragment fragment = tgtDoc.createDocumentFragment(); //DOMResult tgtDom = new DOMResult( fragment ); t.setOutputProperty(OutputKeys.ENCODING, "utf-8"); try { t.transform(new DOMSource(doc), sr); } catch (TransformerException e) { // TODO Auto-generated catch block e.printStackTrace(); } String txt = sw.toString(); return txt; } }