Subject: Re: [xsl] Is there any way to make this faster From: "Ritu" <rkama@xxxxxxxxxxx> Date: Wed, 12 Feb 2003 09:03:27 -0600 |
Hi, You are exactly right. In the init you can load all the XSL in some form of cache in memory and use them for each transform. The pre-compiled XSLs will be much faster than the current approach. The way to do it is as follows: //Init //Initialization - assuming that Length contains the number of XSLs to cache TransformerFactory tfactory = TransformerFactory.newInstance(); Templates templates[]=new Templates[Length]; //For each XSL templates[i]=tfactory.newTemplates(new StreamSource(__xslt)); //Run //For each transformation try { transformer = templates[i].newTransformer(); StringWriter output=new StringWriter(); transformer.transform(streamsource[i],new StreamResult(output)); } catch (Exception e) { System.out.println(e.toString()); I hope this helps. Ritu Kama Sarvega Inc 745, McLintock Dr Burr Ridge IL - 60527 ----- Original Message ----- From: "Bill Chmura" <Bill@xxxxxxxxxxxxx> To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx> Sent: Wednesday, February 12, 2003 8:21 AM Subject: RE: [xsl] Is there any way to make this faster > > I'd be interested in an answer to this one also... > > -----Original Message----- > From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx > [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of TP > Sent: Wednesday, February 12, 2003 8:51 AM > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: [xsl] Is there any way to make this faster > > > I use xalan with servlets. In every doGet I invoke the following code to > transform my xml into html > > //////////////////////////////////////////////////////////////////////// > //// > ////////////////////////////// > TransformerFactory tFactory = TransformerFactory.newInstance(); > final String documentRoot = > getServletConfig().getServletContext().getRealPath("/"); > URIResolverImpl resolver = new URIResolverImpl(documentRoot + > "/WEB-INF/xslt/"); > tFactory.setURIResolver(resolver); > Source xmlSource = new StreamSource(new StringReader(xml)); > Source xslSource = new StreamSource(new URL("file:" + > finalxsl).openStream()); > javax.xml.transform.Transformer transformer = > tFactory.newTransformer(xslSource); > transformer.transform(xmlSource, new StreamResult(out)); > cat.debug("RMSServlet:transformToHTML, transformed and leaving"); > //////////////////////////////////////////////////////////////////////// > //// > ////////////////////////////// > > What i want to know for knowledge sake is what happens when these set of > operations are invoked. What my goal is to figure out, that is there any > way to make this code perform better. For example would it hurt or help > if during init() I get all the xsl into memory and then invoke them my a > hashtable reference during the transform. > > Please let me know. > > Thanks. > > TP. > > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list > > > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Is there any way to make , Marty McKeever | Thread | RE: [xsl] Is there any way to make , Michael Kay |
RE: [xsl] Variables, Martinez, Brian | Date | Re: [xsl] apply-imports clarificati, David Carlisle |
Month |