This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: duplicate removal
- From: Jeni Tennison <jeni at jenitennison dot com>
- To: DPawson at rnib dot org dot uk
- Cc: xsl-list at lists dot mulberrytech dot com
- Date: Mon, 19 Nov 2001 12:48:37 +0000
- Subject: Re: [xsl] duplicate removal
- Organization: Jeni Tennison Consulting Ltd
- References: <9B66BBD37D5DD411B8CE00508B69700FE7A750@pborolocal.rnib.org.uk>
- Reply-to: xsl-list at lists dot mulberrytech dot com
Hi Dave,
> This finds all the duplicate cat-num entries. The processing model
> doesn't however, allow me to identify if the first one has different
> bibno child to the others, which is what I need.
>
> Any suggestions for an alternative to the apply-templates above,
> which would allow me to check if each one had the same bibno child
> as the first?
Well, you could find all the rs with unique cat-nums, iterate through
them and for each of them get all the rs with that cat-num:
<xsl:for-each select="r[cat-num and
generate-id() =
generate-id(key('multiBooks',cat-num))]">
<xsl:sort select="cat-num" />
<xsl:variable name="bibno" select="bibno" />
<xsl:variable name="rs" select="key('multiBooks', cat-num)" />
...
</xsl:for-each>
Then you can find those rs with the same cat-num whose bibno is not
the same as the bibno of the first one with::
$rs[bibno != $bibno]
(Of course you might get several rs with the same bibno returned by
this, but you said you just wanted to know whether they were different
from the first one, so I guess that's what you want. Otherwise, you
need to do multiple-grouping.)
Cheers,
Jeni
---
Jeni Tennison
http://www.jenitennison.com/
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list