xsl-list
[Top] [All Lists]

Re: [xsl] Transformer adds unwanted newlines

2008-10-06 05:02:14
2008/10/5 Michael Kay <mike(_at_)saxonica(_dot_)com>:

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/

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--