|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Is there any way to make this faster
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: 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: 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
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








