Re: [xsl] Removing Duplicate Nodes

Subject: Re: [xsl] Removing Duplicate Nodes
From: Ashutosh Bhardwaj <ashubhardwaj@xxxxxxxxxx>
Date: Sun, 13 Aug 2006 12:50:25 +0530
andrew welch wrote:
I am using XSLT 1.0 and trying to use muechian grouping,but not able to
form correct expression. Also I need to get only first 8 elements and
break recursion or loop after that.

In which case you will want to read:


http://www.jenitennison.com/xslt/grouping/index.xml

Remember with XSLT you don't break out of a loop, you only select the
nodes you want to process.

Best of luck


With some work I have been able to get all the distinct values but I don't know how to get only first 8 distinct values :

My XSL goes something like this :

<xsl:apply-templates select="//HIT[generate-id(.) = generate-id(key('hit-keyword', substring-after(substring-before(substring-before(FIELD[@NAME='docvector'] ,'1]'),','),'['))[1])]" mode="col"/>
.
.
.



<xsl:template match="//HIT" mode="col">
<!--<xsl:for-each select="key('hit-keyword',substring-after(substring-before(substring-before(FIELD[@NAME='docvector'] ,'1]'),','),'['))">-->
<xsl:variable name="thekeyword" select="substring-after(substring-before(substring-before(FIELD[@NAME='docvector'] ,'1]'),','),'[')"/>
<p><a href="#" onClick="javascript:document.IntranetSrchFrm.keyword.value='{$thekeyword}';document.IntranetSrchFrm.submit();"><xsl:value-of select="substring-after(substring-before(substring-before(FIELD[@NAME='docvector'] ,'1]'),','),'[')"/></a></p>
<!--</xsl:for-each>-->


</xsl:template>


Any ideas will be appreciated , I have failed to build a correct expression for recursion.



thanks, ashutosh

Current Thread