|
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 |