This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: Unique question
- To: xsl-list at lists dot mulberrytech dot com
- Subject: [xsl] Re: Unique question
- From: Dimitre Novatchev <dnovatchev at yahoo dot com>
- Date: Thu, 4 Oct 2001 21:30:26 -0700 (PDT)
- Reply-To: xsl-list at lists dot mulberrytech dot com
Or you can just use:
<xsl:value-of select="count(/*/*/*/*/@index
[generate-id()
=
generate-id(key('kIndex', .)[1])])"/>
Cheers,
Dimitre Novatchev.
--- Dimitre Novatchev <dnovatchev@yahoo.com> wrote:
> Hi Daren,
>
> This is a short solution:
>
> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
> <xsl:output method="text"/>
> <xsl:key name="kIndex" match="@index" use="."/>
> <xsl:template match="/">
> <xsl:variable name="x">
> <xsl:for-each select="/*/*/*/*/@index
> [generate-id()
> =
> generate-id(key('kIndex', .)[1])]">
> <xsl:value-of select="'Z'"/>
> </xsl:for-each>
> </xsl:variable>
>
> <xsl:value-of select="string-length($x)"/>
> </xsl:template>
> </xsl:stylesheet>
>
> It produces:
>
> 4
>
> with the corrected version of your xml source (it was not well-formed):
>
> <groups>
> <group>
> <tables>
> <table index="1" />
> <table index="2" />
> </tables>
> <views>
> <view index="3" />
> <view index="4" />
> </views>
> </group>
> <group>
> <tables>
> <table index="1" />
> </tables>
> <views>
> <view index="1" />
> </views>
> </group>
> </groups>
>
> Hope this helped.
>
> Cheers,
> Dimitre Novatchev.
>
>
> Darren Hayduk <dhayduk at nauticusnet dot com> wrote:
>
> I'm trying to take the XPath expression "*/*/@index" and determine how many
> unique vales there are - within my current context.
> I've tried various axis expressions and can't seem to figure it out... I'd
> be happy with either:
> A. the ability to count the unique nodes (and I'll compare to count of all
> nodes)
> B. just knowing there are duplicates.
>
> Example: Within each group, the table and view indexes need to be unique.
> Data in first group is OK, the 'view' in the second group is a duplicate...
>
> <group>
> <tables>
> <table index="1"/>
> <table index="2"/>
> </tables/>
> <views>
> <view index="3"/>
> <view index="4"/>
> </views/>
> </group>
> <group>
> <tables>
> <table index="1"/>
> </tables/>
> <views>
> <view index="1"/>
> </views/>
> </group>
>
>
>
>
> __________________________________________________
> Do You Yahoo!?
> NEW from Yahoo! GeoCities - quick and easy web site hosting, just $8.95/month.
> http://geocities.yahoo.com/ps/info1
>
__________________________________________________
Do You Yahoo!?
NEW from Yahoo! GeoCities - quick and easy web site hosting, just $8.95/month.
http://geocities.yahoo.com/ps/info1
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list