|
Subject: Re: [xsl] How to retrieve value(which is copied into RTF as a variable) from RTF From: "Ranjan K. Baisak" <ranjanbaisak@xxxxxxxxx> Date: Tue, 4 Jan 2005 05:53:35 -0800 (PST) |
David,
you are right. It has a performance impact which
I can see. As I hardly work on XSLT so never get any
chance to look into performance.
To clarify, $leverreference contains "id" values and
profession contains id and name values. I need to
retrieve names from profession depending upon id
values in $leverreference RTF and display only unique
names with number of occurrence. I would appreciate
for any suggestion on performance.
regards.
Ranjan
I have atleast used 3 RTF to get the result.
--- David Carlisle <davidc@xxxxxxxxx> wrote:
>
>
>
> I have a RTF with following declaration
> <xsl:variable name="professionLevel">
> <xsl:for-each select="//profession">
> <xsl:variable name="nameval"
> select="@name"/>
> <xsl:variable name="parentval"
> select="@parent"/>
> <xsl:for-each
>
> select="exslt:node-set($leverreference)/*">
> <xsl:variable name="referid"
> select="@levelref"/>
> <xsl:if test="$referid=$parentval">
> <xsl:copy>
> <xsl:copy-of select="$nameval"/>
> </xsl:copy>
> </xsl:if>
> </xsl:for-each>
> </xsl:for-each>
> </xsl:variable>
>
>
> That looks a very strange definition. The select
> expression on your
> inner fo-each doesn't depend on the current node so
> you will iterate
> over all of $leverreference)/* repeatedly, as many
> times as you have
> profession elements in your original source, is that
> really what you
> want?
>
> The above is euivalent to
>
> <xsl:variable name="professionLevel">
> <xsl:for-each select="//profession">
> <xsl:variable name="nameval"
> select="@name"/>
> <xsl:variable name="parentval"
> select="@parent"/>
> <xsl:for-each
>
>
select="exslt:node-set($leverreference)/*[@levelref=$parentval]">
> <xsl:copy>
> <xsl:copy-of select="$nameval"/>
> </xsl:copy>
> </xsl:for-each>
> </xsl:for-each>
> </xsl:variable>
>
>
> Note that although the variable is called nameval it
> does not store an
> attribute value, but the attribute node so
> <xsl:copy>
> <xsl:copy-of select="$nameval"/>
> </xsl:copy>
>
> generates an empty element )with name the same as
> the element in
> $leverreference) with a name attribute.
>
> So
>
> <xsl:for-each
> select="exslt:node-set($professionLevel)/*">
> <xsl:value-of select="."/>
> </xsl:for-each>
>
> will select a set of empty elements, <xsl:value-of
> select="."/> on each
> of them will be the empty string.
>
> You need to use <xsl:value-of select="@name"/> here
> in order to get any
> output, but that will just concatemate all the
> values, so probably you
> will need to add spaces or commas in between.
>
> David
>
>
________________________________________________________________________
> This e-mail has been scanned for all viruses by
> Star. The
> service is powered by MessageLabs. For more
> information on a proactive
> anti-virus service working around the clock, around
> the globe, visit:
> http://www.star.net.uk
>
________________________________________________________________________
>
>
__________________________________
Do you Yahoo!?
Send a seasonal email greeting and help others. Do good.
http://celebrity.mail.yahoo.com
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] How to retrieve value(whi, David Carlisle | Thread | [xsl] How to retrieve value(which i, Ranjan K. Baisak |
| Re: [xsl] How to retrieve value(whi, David Carlisle | Date | Re: [xsl] Namespace issue when usin, Andrew Male |
| Month |