Excelent, i've incorporated the two sugestions, it works the same but
the coding style (at least) is much better.
Thanks.
On Apr 8, 2005 4:13 PM, Michael Kay <mike(_at_)saxonica(_dot_)com> wrote:
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/
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail:
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--