[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Optimizing XSLT iteration
Sujata Gohad wrote: > <xsl:for-each select="locus[position()=1]"> > <xsl:text >M </xsl:text > > <xsl:value-of select="@ellipse_x"/ > > <xsl:text > </xsl:text > > <xsl:value-of select="@ellipse_y"/ > > </xsl:for-each > > <xsl:for-each select="locus[position()!=1]"> > <xsl:text > L</xsl:text > > <xsl:value-of select="@ellipse_x"/ > > <xsl:text > </xsl:text > > <xsl:value-of select="@ellipse_y"/ > > </xsl:for-each > > Is there a way to faster iteration of the "locus" elements? See if this is any quicker: <xsl:for-each select="locus"> <xsl:choose> <xsl:when test="position() = 1"> <xsl:text>M </xsl:text> </xsl:when> <xsl:otherwise> <xsl:text> L </xsl:text> </xsl:otherwise> </xsl:choose> <xsl:value-of select="@ellipse_x"/ > <xsl:text > </xsl:text > <xsl:value-of select="@ellipse_y"/ > </xsl:for-each> Depending on your XSLT processor, your original code may be constructing up to four node-sets: locus, the subset when position() = 1, locus (again), the subset when position() != 1. You're allowed to use position() in almost any expression, not just as the predicate of a prior selection. In my code, position() applies to the position that each locus has in the most recent for-each, which is what you want.
|
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
|