[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: Bad practice
> I hope this message gets to the list, cause my last fews > seems that don't. You last message got there (twice), but for some reason no-one answered it. > > What are the consequences of a construction like this in terms of > performance, and what about coding style? > > I'm creating a table like this where diasemana.xml is a xml > representation of week days: > > <table id="{$t}" border="1"> > <th>Processo</th> > <xsl:for-each > select="document('diassemana.xml')/dias/dia"> > <th> > <xsl:value-of > select="@txt"/> > </th> > </xsl:for-each> > <xsl:apply-templates > select="/GHoras/Processos/Processo"/> > </table> > > <xsl:template match="Processo"> > <tr prK="{Processo_K}"> > <xsl:variable name="this" select="."/> > <td> > <xsl:value-of select="NomeProcesso"/> > </td> > <xsl:for-each > select="document('diassemana.xml')/dias/dia"> > <xsl:variable name="pos" > select="position()"/> > <xsl:for-each select="$this"> > <xsl:call-template > name="edhoras"> > <xsl:with-param > name="dia" select="$pos"/> > </xsl:call-template> > </xsl:for-each> > </xsl:for-each> > </tr> > </xsl:template> > > This second use of document() serves only to do a 7th time loop, > without using any data, and the nested for-each is simply to change > context. > > Is this a bad practice? No, not especially. But when a named template is dependent on the context node, it can often be better to make it a match template instead, perhaps with a specific mode. Then you could replace <xsl:for-each select="document('diassemana.xml')/dias/dia"> <xsl:variable name="pos" select="position()"/> <xsl:for-each select="$this"> <xsl:call-template name="edhoras"> <xsl:with-param name="dia" select="$pos"/> </xsl:call-template> </xsl:for-each> </xsl:for-each> with <xsl:for-each select="document('diassemana.xml')/dias/dia"> <xsl:apply-templates select="$this" mode="edhoras"> <xsl:with-param name="dia" select="position()"/> </ </ Michael Kay http://www.saxonica.com/
|
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
|