[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: position() ne last()
<xsl:template match="para[following-sibling::para]"> <br/><xsl:next-match/> </xsl:template> "P:QP0QP:P>QQQ - QP5QQQP0 QP0P;P0P=QP0" (Q) PP=QP>P= PP0P2P;P>P2P8Q P'P5QP>P2 2009/12/3 Dimitre Novatchev <dnovatchev@xxxxxxxxx>: > That's remarkable. Somehow it is similar to the prepend optimization I > wrote about in my blog last December: > > B http://dnovatchev.spaces.live.com/Blog/cns!44B0A32C2CCF7488!981.entry > > Does a catalog of such optimizations exist? > > > -- > Cheers, > Dimitre Novatchev > --------------------------------------- > Truly great madness cannot be achieved without significant intelligence. > --------------------------------------- > To invent, you need a good imagination and a pile of junk > ------------------------------------- > Never fight an inanimate object > ------------------------------------- > You've achieved success in your field when you don't know whether what > you're doing is work or play > > > On Thu, Dec 3, 2009 at 4:43 AM, Michael Kay <mike@xxxxxxxxxxxx> wrote: >> >> A little coding tip. I've no idea why this hasn't come up before. It's very >> common to write things like >> >> <xsl:for-each select="para"> >> B <xsl:apply-templates/> >> B <xsl:if test="position() ne last()"> >> B B <br/> >> B </xsl:if> >> </xsl:for-each> >> >> But a much better way of coding this is: >> >> <xsl:for-each select="para"> >> B <xsl:if test="position() ne 1"> >> B B <br/> >> B </xsl:if> >> B <xsl:apply-templates/> >> </xsl:for-each> >> >> Why? Because however hard the optimizer works, the last() function is hard >> work: it involves some kind of lookahead. With "position() ne last()" the >> lookahead might be limited to one element, but it's still a lot more >> complicated than testing whether the position is 1. >> >> With streaming coming along, the latter formulation is also more likely to >> be streamable (because lookahead is impossible with streaming). >> >> I might think about doing the above rewrite automatically... >> >> >> Regards, >> >> Michael Kay >> http://www.saxonica.com/ >> http://twitter.com/michaelhkay
|
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
|