[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Transformer adds unwanted newlines
2008/10/5 Michael Kay <mike@xxxxxxxxxxxx>: >> >> > What happens if you remove the (apparently unnecessary) second step? >> >> Umm, being a bear of very little brain, can you explain what >> I need to change below to do this? Sorry to be so dense... >> >> >> SAXParserFactory spf = SAXParserFactory.newInstance(); >> >> spf.setNamespaceAware(true); >> >> SAXParser parser = spf.newSAXParser(); >> >> reader = parser.getXMLReader(); >> >> stf = (SAXTransformerFactory) TransformerFactory.newInstance(); >> >> String s = serializeTree(); >> >> System.out.println("DEBUG: " + s); // <------- DEBUG >> >> InputSource input = new InputSource(new StringReader(s)); >> >> filter = stf.newXMLFilter(new StreamSource(stylesheet)); >> >> filter.setParent(reader); >> >> StreamResult result = new StreamResult(response.getWriter()); >> >> Transformer transformer = stf.newTransformer(); >> >> SAXSource transformSource = new SAXSource(filter, input); >> >> transformer.transform(transformSource, result); >> > > Change it to > >> SAXParserFactory spf = SAXParserFactory.newInstance(); >> spf.setNamespaceAware(true); >> SAXParser parser = spf.newSAXParser(); >> reader = parser.getXMLReader(); >> stf = (SAXTransformerFactory) TransformerFactory.newInstance(); >> String s = serializeTree(); >> System.out.println("DEBUG: " + s); // <------- DEBUG >> InputSource input = new InputSource(new StringReader(s)); >> StreamResult result = new StreamResult(response.getWriter()); >> Transformer transformer = stf.newTransformer(new > StreamSource(stylesheet)); >> SAXSource transformSource = new SAXSource(reader, input); >> transformer.transform(transformSource, result); or you could just do (untested): TransformerFactory factory = TransformerFactory.newInstance(); Transformer transformer = factory.newTransformer(new StreamSource(stylesheet)); String s = serializeTree(); Result result = new StreamResult(response.getWriter()); transformer.transform(new SAXSource(new InputSource(new StringReader(s))), result); ...as you don't need to use a SAXParser do you? Also, depending on what serializeTree() does, you might not need to serialize/reparse the input. -- Andrew Welch http://andrewjwelch.com Kernow: http://kernowforsaxon.sf.net/
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|