1 9 10 package org.eclipse.help.internal.xhtml; 11 12 import java.io.ByteArrayInputStream ; 13 import java.io.InputStream ; 14 import java.io.StringWriter ; 15 import java.io.UnsupportedEncodingException ; 16 17 import javax.xml.transform.OutputKeys ; 18 import javax.xml.transform.Transformer ; 19 import javax.xml.transform.TransformerConfigurationException ; 20 import javax.xml.transform.TransformerException ; 21 import javax.xml.transform.TransformerFactory ; 22 import javax.xml.transform.dom.DOMSource ; 23 import javax.xml.transform.stream.StreamResult ; 24 25 import org.eclipse.help.internal.HelpPlugin; 26 import org.w3c.dom.Document ; 27 import org.w3c.dom.DocumentType ; 28 29 30 33 public class UATransformManager { 34 35 36 private static Transformer createTransformer(Document document) { 37 try { 38 TransformerFactory tFactory = TransformerFactory.newInstance(); 40 Transformer transformer = tFactory.newTransformer(); 41 42 DocumentType docType = document.getDoctype(); 44 if (docType != null) { 45 String value = docType.getSystemId(); 46 transformer.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM, value); 47 value = document.getDoctype().getPublicId(); 48 transformer.setOutputProperty(OutputKeys.DOCTYPE_PUBLIC, value); 49 transformer.setOutputProperty(OutputKeys.METHOD, "xml"); transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes"); 52 } else 53 ; 54 55 return transformer; 56 57 } catch (TransformerConfigurationException tce) { 58 HelpPlugin.logError("Transformer Config error: " + tce.getMessage(), null); 60 Throwable x = tce; 61 if (tce.getException() != null) 62 x = tce.getException(); 63 HelpPlugin.logError("Transformer Stack trace: ", x); } 65 return null; 66 } 67 68 public static String convertToString(Document document) { 69 try { 70 Transformer transformer = createTransformer(document); 71 DOMSource source = new DOMSource (document); 72 StringWriter stringBuffer = new StringWriter (); 73 StreamResult result = new StreamResult (stringBuffer); 74 75 transformer.transform(source, result); 76 return stringBuffer.toString(); 77 78 } catch (TransformerException te) { 79 HelpPlugin.logError("Transformer error: " + te.getMessage(), te); Throwable x = te; 81 if (te.getException() != null) 82 x = te.getException(); 83 HelpPlugin.logError("Transformer Stack trace: ", x); } 85 return null; 86 87 } 88 89 public static InputStream getAsInputStream(Document document) { 90 byte[] ba = null; 91 String xhtml = convertToString(document); 92 try { 93 ba = xhtml.getBytes("UTF-8"); } catch (UnsupportedEncodingException ue) { 95 ; 96 } 97 ByteArrayInputStream is = new ByteArrayInputStream (ba); 98 return is; 99 } 100 101 102 } 103 | Popular Tags |