Hello,

I am trying to use Xalan in a servlet to transform xml submitted from an
xform (specifically the chiba project).  I pass in the path to the
stylesheet and extract the xml from the request body.  After the
transform I am returned plain text that appears the transformer
attempted to format it, instead of the html that I expected.  However,
if I pass in the path to an xml file as a param and use that file
instead of the xml from request in the transform the transformer does
return html.  I'm at a loss here.    

Any hints, help, or suggestions would be greatly appreaciated.

Thank you.


public void doPost(HttpServletRequest req, HttpServletResponse res)
                        throws ServletException, IOException {

        String xml      = new String("");
        String thisLine = new String("");
        out = res.getWriter();
        
        //get path to xsl file.
        String xslFile    = req.getParameter("xslt");   
                        
        res.setContentType("text/html; charset=UTF-8");
                        
        
        if ( xslFile == null) {
                out.println(
                "<h1>No input for xslFile</h1>");
                return;
        }
        
        String ctx = getServletContext().getRealPath("") + FS;
        xslFile = ctx + xslFile;

        //extract xml from request              
        BufferedReader br = req.getReader();
        
        while ((thisLine = br.readLine()) != null) { 
                                  
                xml = xml.concat(thisLine);
                                               
        }       
                
        DocumentBuilderFactory factory =
DocumentBuilderFactory.newInstance();
        factory.setNamespaceAware(true);
                                
        DocumentBuilder builder  = factory.newDocumentBuilder();
        

        Document xmlDocument = builder.parse(new InputSource(new
StringReader(xml)));

        //get a domsource                                  
        DOMSource xmlDomSource = new DOMSource(xmlDocument);
                        
                        
         
        TransformerFactory tFactory = TransformerFactory.newInstance();
                        
        Transformer transformer = tFactory.newTransformer(new
StreamSource(xslFile));
                        

        // Perform the transformation.
        transformer.transform(xmlDomSource, new
StreamResult(out));


}

Reply via email to