xsl-list
[Top] [All Lists]

Using vars

2004-07-26 11:09:24
In terms of performance, what will be the best way to do this?  Having:

<Formatos>
 <Forms>
   <Form Nome="ProcessoTipoGrupoListaDoc">
     <Grids>
<Grid Nome="ProcessoTipoGrupoLista_Grid" SourceObject="ProcessoTipoGrupoLista_Grid">
         <Zooms>
           <Zoom Coluna="ProcessoTipoGrupo">
             <FormZoom>ProcessoTipoGrupoDoc</FormZoom>
             <ModoZoom>AZ</ModoZoom>
             <ParametroZoom>ProcessoTipoGrupo</ParametroZoom>
           </Zoom>
         </Zooms>
       </Grid>
     </Grids>
     (*/ n Grids/ *)
   </Form>
 </Forms>
</Formatos>

should i use one variable like

<xsl:template name="StandardEvents">
 <Events>
   <xsl:variable name="pages"
select="/Formatos/Forms/Form/Grids/Grid/Zooms/Zoom[(_at_)Coluna!='xxx']/*[name()='FormZoom' or name()='ParametroZoom']" />
   <Event method="tablemouse" type="MouseHandler">
           <xsl:attribute name="target">GridPanel</xsl:attribute>
           <xsl:attribute name="next">
             <xsl:for-each select="$pages">
               <xsl:if test="name()='FormZoom'">
                 <xsl:value-of select="." />
                 <xsl:text>:</xsl:text>
               </xsl:if>
             </xsl:for-each>
           </xsl:attribute>
           <xsl:attribute name="params">
             <xsl:for-each select="$pages">
               <xsl:if test="name()='ParametroZoom'">
                 <xsl:value-of select="." />
                 <xsl:text>:</xsl:text>
               </xsl:if>
             </xsl:for-each>
           </xsl:attribute>
   </Event>
 </Events>
</xsl:template>


or two vars, like

<xsl:template name="StandardEvents">
 <Events>
    <xsl:variable name="pages">
<xsl:for-each select="/Formatos/Forms/Form/Grids/Grid/Zooms/Zoom[(_at_)Coluna!='xxx']">
             <xsl:value-of select="concat(ParametroZoom,':')" />
           </xsl:for-each>
    </xsl:variable>
    <xsl:variable name="params">
<xsl:for-each select="/Formatos/Forms/Form/Grids/Grid/Zooms/Zoom[(_at_)Coluna!='xxx']">
           <xsl:value-of select="concat(ParametroZoom,':')" />
         </xsl:for-each>
    </xsl:variable>

    <Event method="tablemouse" type="MouseHandler">
           <xsl:attribute name="target">GridPanel</xsl:attribute>
           <xsl:attribute name="next">
             <xsl:value-of select="$pages" />
           </xsl:attribute>
           <xsl:attribute name="params">
             <xsl:value-of select="$params" />
           </xsl:attribute>
          </xsl:attribute>
   </Event>
 </Events>
</xsl:template>


If i understand correctly, the first only traverses the tree once and the second two times, so if the tree is very big the first option is better?

Thxs.



<Prev in Thread] Current Thread [Next in Thread>