David:
Thank you. Works like a charm.
I was trying to solve the problem without keys first and then see if I can
apply keys in case I need to speed it up.
Part of the reason was that I had not used keys before, but the other issue was
a concern that I could not use keys in my context, which might have been lost
in the simplification of the example.
The real input example has various sections of the original example - aside
from being also more convoluted in other aspects. All sections need to use
their own unique value set and reference it appropriately. My concern was that
the top-level (i.e., somewhat global) key feature wouldn't be appropriate.
Is there a way to do the same without keys?
I will also study keys and the example expression a bit more to understand how
to make it work.
Thanks again,
Andreas
----- Original Message ----
From: David Carlisle <davidc(_at_)nag(_dot_)co(_dot_)uk>
To: a5sk4s(_at_)yahoo(_dot_)com
Cc: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Sent: Friday, December 8, 2006 4:20:24 PM
Subject: Re: [xsl] Referencing unique values by their order number.
I do not have a separate file - and I'd rather avoid it.
ah ok, time to bring out keys then (google for muenchian grouping)
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
<xsl:output indent="yes"/>
<xsl:key name="i" match="item" use="."/>
<xsl:template match="x">
<a>
<items>
<xsl:copy-of
select="item[generate-id()=generate-id(key('i',.))]"/>
</items>
<elements>
<xsl:for-each select="text">
<element>
<item>
<xsl:value-of
select="count(key('i',preceding-sibling::item[1])[1]/preceding-sibling::item[generate-id()=generate-id(key('i',.))])"/>
</item>
<xsl:copy-of select="."/>
</element>
</xsl:for-each>
</elements>
</a>
</xsl:template>
</xsl:stylesheet>
<a>
<items>
<item>V1</item>
<item>V2</item>
<item>V3</item>
</items>
<elements>
<element>
<item>0</item>
<text>(content)</text>
</element>
tem>
<text>(content)</text>
</element>
<element>
<item>1</item>
<text>(content)</text>
</element>
<element>
<item>0</item>
<text>(content)</text>
</element>
<element>
<item>2</item>
<text>(content)</text>
</element>
<element>
<item>2</item>
<text>(content)</text>
</element>
</elements>
</a>
____________________________________________________________________________________
Do you Yahoo!?
Everyone is raving about the all-new Yahoo! Mail beta.
http://new.mail.yahoo.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>
--~--