/* * Created on 2003-apr-02 * * To change the template for this generated file go to * Window>Preferences>Java>Code Generation>Code and Comments */ package test; import java.io.InputStream; import java.io.OutputStream; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerFactory; import javax.xml.transform.stream.StreamResult; import javax.xml.transform.stream.StreamSource; import org.jdom.Document; import org.jdom.Element; import org.jdom.output.XMLOutputter; import org.jdom.transform.JDOMResult; import org.jdom.transform.JDOMSource; /** * @author norrman * */ public class MyTransformer { public static Document generateTestDocument() { Element root = new Element("root"); String s = "Non\u00a0breaking\u00a0space & some other едц stuff!"; Element data = new Element("data"); data.setText(s); root.addContent(data); return new Document(root); } /** * Transform a JDOM Document using a specified stylesheet. */ private static Document transform(Document in, String stylesheet) throws Exception { InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream( stylesheet); TransformerFactory factory = TransformerFactory.newInstance(); Transformer transformer = factory.newTransformer(new StreamSource(is)); JDOMResult out = new JDOMResult(); transformer.transform(new JDOMSource(in), out); return out.getDocument(); } /** * Transform a JDOM Document using a specified stylesheet. */ private static void transform(Document in, String stylesheet, OutputStream out) throws Exception { InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream( stylesheet); TransformerFactory factory = TransformerFactory.newInstance(); Transformer transformer = factory.newTransformer(new StreamSource(is)); StreamResult result = new StreamResult(out); transformer.transform(new JDOMSource(in), result); } public static void main(String[] args) throws Exception { Document d = generateTestDocument(); Document html = transform(d, "test/stylesheet.xsl"); transform(html, "test/copy.xsl", System.out); } }