|
Subject: RE: [xsl] Bad practice From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Fri, 8 Apr 2005 16:13:50 +0100 |
> 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/
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] Bad practice, James Fuller | Thread | Re: [xsl] Bad practice, António Mota |
| Re: [xsl] Bad practice, James Fuller | Date | Re: [xsl] Re: Pass a DOM Node to a , Jon Gorman |
| Month |