Subject: Re: [xsl] Transformer adds unwanted newlines From: "Andrew Welch" <andrew.j.welch@xxxxxxxxx> Date: Mon, 6 Oct 2008 10:01:49 +0100 |
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/
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Transformer adds unwanted, Michael Kay | Thread | Re: [xsl] Transformer adds unwanted, John English |
Re: [xsl] Displaying Unique attribu, David Carlisle | Date | RE: [xsl] Displaying Unique attribu, Michael Kay |
Month |