|
Subject: RE: [xsl] Using vars From: xptm@xxxxxxx Date: Tue, 27 Jul 2004 14:00:55 +0100 |
Hi:
I keep forgeting that when i hit reply the msg does not go to the list, but
to
the person that send the original msg...
I've sended a reply to Tom clarifying some of his points.
I can't test this beacause i'm just writing a "framework" that will be feed
with
xml's not know to me at the time, i'm just working with a couple of examples.
So i don't know how big the tree can be.
But as Tom pointed, there is also the question of clarity and maintenence.
I've came up with this, folowing both your sugestions:
<xsl:variable name='zoom-base'
select="/Formatos/Forms/Form/Grids/Grid/Zooms/Zoom[ModoZoom[contains(.,
'Z')]]"/> --> it changes from the 'xxx'
<xsl:variable name='pages'>
<xsl:for-each select="$zoom-base"><xsl:value-of select="FormZoom"
/>:</xsl:for-each>
</xsl:variable>
<xsl:variable name='params'>
<xsl:for-each select="$zoom-base"><xsl:value-of select="ParametroZoom"
/>:</xsl:for-each>
</xsl:variable>
now i can use these vars in various places...
<Event method="tablemouse" type="MouseHandler" target="GridPanel">
<xsl:attribute name="next"><xsl:value-of select="$pages"
/></xsl:attribute>
<xsl:attribute name="params"><xsl:value-of select="$params"
/></xsl:attribute>
</Event>
<xsl:for-each select="/Formatos/Forms/Form/Grids/Grid">
<Event method="tablemouse" type="MouseHandler">
<xsl:attribute name="target"><xsl:value-of select="@Nome"
/></xsl:attribute>
<xsl:attribute name="next"><xsl:value-of select="$pages"
/></xsl:attribute>
<xsl:attribute name="params"><xsl:value-of select="$params"
/></xsl:attribute>
</Event>
<Event method="tablemouse" type="MouseHandler">
<xsl:attribute name="target"><xsl:value-of
select="concat('SPane_',@Nome)" /></xsl:attribute>
<xsl:attribute name="next"><xsl:value-of select="$pages"
/></xsl:attribute>
<xsl:attribute name="params"><xsl:value-of select="$params"
/></xsl:attribute>
</Event>
</xsl:for-each>
<Event method="nextPage" target="btnProceed" type="ActionHandler">
<xsl:attribute name="next"><xsl:value-of select="$pages"
/></xsl:attribute>
<xsl:attribute name="params"><xsl:value-of select="$params"
/></xsl:attribute>
</Event>
It seems clear and maintenable, but don't know about the performance. I guess
i
just wait and see if the problem ever arises...
Thanks all.
Citando Michael Kay <mhk@xxxxxxxxx>:
> You can't ask questions about performance without saying what XSLT
processor
> you are using, and you can't reliably answer them except by measuring and
> comparing.
>
> My own approach would be to define one variable:
>
> <xsl:variable name="pages"
> select="/Formatos/Forms/Form/Grids/Grid/Zooms/Zoom[@Coluna!='xxx']" />
>
> and then do:
>
> <xsl:for-each select="$pages/FormZoom">
>
> <xsl:for-each select="$pages/ParametroZoom">
>
> I've no idea how the performance will compare on any given processor, but
> the code seems better structured that way.
>
> Michael Kay
>
>
>
>
>
> > -----Original Message-----
> > From: xptm [mailto:xptm@xxxxxxx]
> > Sent: 26 July 2004 19:09
> > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> > Subject: [xsl] Using vars
> >
> > 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[@Coluna!='x
> > xx']/*[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[@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[@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.
>
>
O SAPO ja esta livre de vmrus com a Panda Software, fique vocj tambim!
Clique em: http://antivirus.sapo.pt
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| RE: [xsl] Using vars, Passin, Tom | Thread | Re: [xsl] Using vars, David Carlisle |
| [xsl] Software Development 2005 Wes, Elliotte Rusty Harol | Date | Re: [xsl] Using vars, David Carlisle |
| Month |