Subject: Re: [xsl] Slow XSLT From: Cleyton Jordan <cleytonjordan@xxxxxxxxxxx> Date: Thu, 13 Mar 2008 00:53:28 +0000 (GMT) |
--- David Carlisle <davidc@xxxxxxxxx> wrote: > > <xsl:variable name=set" select="Report/Rows//Row" > /> > ..... > <xsl:apply-templates select="$set"/> > > > you've given no indication of why you need this > variable (it seems that > it isn't needed) The reason why I created this variable is because I need to apply templates to all the Rows in the xml. However, the structure of the Rows in xml is a bit peculiar. I can have 1, 2, 3 or even more RowGrp elements before the Row elements. Since I do not know how many RowGrp elemetns I will have I cannot do something like this: <xsl:apply-templates select="Report/Rows/RowGrp/Row"/> or this <xsl:apply-templates select="Report/Rows/RowGrp/RowGrp/Row"/> Therefore, I created the variable using the // <xsl:variable name=set" select="Report/Rows//Row"/> I also read in some posts that it is faster to use a node set in a variable. I might be wrong though. Any suggestion considering that I can have lots of Row and Cell elements in the xml? <Rows> <RowGrp> <RowGrp> <Row heading="Name 1"> <Cell> <Msr idx="1" val="10" /> <Msr idx="2" val="15" /> </Cell> <Cell/> </Row> </RowGrp> <RowGrp> <Row heading="Name 1"> <Cell> <Msr idx="1" val="10" /> <Msr idx="2" val="15" /> </Cell> <Cell/> </Row> </RowGrp> <RowGrp> </Rows> > > <xsl:apply-templates > select="$set[postion()]/*"/> > > as I said last time, [position()] does nothing, it > is the same as > [true()] what do you intend it to do? I have noticed that this does not work. > > In the Row template I apply templates again but > this > > time I use the /* to get the child elements > (Cell). > > However, if I do this - <xsl:apply-templates > > select="$set/*"/> - I will apply templates to all > the > > Cell elements. So I will have only one <tr> with > lots > > of <td>s. Something like that: > > You just want to apply templates to the children of > the current node, > that's > <xsl:apply-template select="*"/> > or (more or less equivalently in this context) just > <xsl:apply-templates/> You are right. I want to apply templates to the children of the current Row node that is in the node set. But if it is not possible I will have to get rid of the node set and use only apply templates Cell. ________________________________________________________________________ > The Numerical Algorithms Group Ltd is a company > registered in England > and Wales with company number 1249803. The > registered office is: > Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, > United Kingdom. > > This e-mail has been scanned for all viruses by > Star. The service is > powered by MessageLabs. > ________________________________________________________________________ > > ___________________________________________________________ To help you stay safe and secure online, we've developed the all new Yahoo! Security Centre. http://uk.security.yahoo.com
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Slow XSLT, David Carlisle | Thread | Re: [xsl] Slow XSLT, David Carlisle |
Re: [xsl] Slow XSLT, David Carlisle | Date | Re: [xsl] Slow XSLT, David Carlisle |
Month |