Subject: RE: [xsl] [XSLT] [Q] Recursion Question/Concern From: "Michael Kay" <mhkay@xxxxxxxxxxxx> Date: Thu, 22 Mar 2001 03:42:32 -0000 |
> I need to count and number "records" in an XML file. > It would seem that recursion is the answer, but I am > concerned about performance. You have already had responses showing you how to do this without recursion. > > When using recursion I have noticed a 10:1 performance > decrease over not using recursion. I assume that user > error is responsible. > > In my XSL document I do the following: > > <xsl:template name="NumberStuff"> > <xsl:param name="Counter" /> > > <xsl:if test="count(//RECORD) + 1 > $Counter"> > The performance problem is not because your stylesheet is recursive, it is because each time this template is called it is calculating count(//RECORD), the number of RECORD elements in the document, which is an expensive operation. A good optimizer would avoid doing it repeatedly, but this is more difficult than you might think, because it has to reckon with the possibility of multiple source documents, which would cause count(//RECORD) to give different answers on different occasions. You could get a massive performance boost by calculating count(//RECORD) in a global variable. Mike Kay Software AG XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] [XSLT] [Q] Recursion Ques, Francis Norton | Thread | [xsl] xsl 1.1 security model?, Francis Norton |
RE: [xsl] Xalan-Java extensions, Michael Kay | Date | Re: [xsl] special char in html text, Mike Brown |
Month |