This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: Preceding: can't filter my nodes?
- To: "'xsl-list at mulberrytech dot com'" <xsl-list at mulberrytech dot com>
- Subject: RE: Preceding: can't filter my nodes?
- From: "Pollington, Lee (ELSLON)" <lee dot pollington at biomednet dot com>
- Date: Wed, 13 Sep 2000 16:35:23 +0100
- Reply-To: xsl-list at mulberrytech dot com
Thanks Mike, I can now go on holiday without any XSLT worries :)
That certainly does work (with a bracket change) and certainly does look
expensive. However it will only be evaluated a few times at most and on no
more than 30-40 nodes max. I still haven't got to grips with keys yet, that
will be next.
Saxon is my prefered XSLT processor, but I am running this as an Oracle
stored java procedure. It seems to perform pretty well.
regards
Lee
-----Original Message-----
From: Kay Michael [mailto:Michael.Kay@icl.com]
Sent: 12 September 2000 17:36
To: 'xsl-list@mulberrytech.com'
Subject: RE: Preceding: can't filter my nodes?
> I'm trying to get a unique set of nodes. I can't seem to tie
> the preceding
> axis to a filter on a given ID. I have tried filtering that
> node set into a
> variable and then getting a unique list from that, but I am
> still operating
> on the whole node set.(abbreviated XML below)
>
> <xsl:variable name="ats" select="/ROWSET/ROW[R_ID='14144']"/>
> <xsl:for-each select="$ats/AT_ID[not(.=preceding::AT_ID)]">
> <at_id><xsl:value-of select="."/></at_id>
> </xsl:for-each>
"preceding", like all the other axes, means "preceding in the source
document", not "preceding in the node-set".
I'm tempted to suggest the saxon:distinct() function, but I know that's
cheating! select="saxon:distinct($ats/AT_ID)"
Perhaps you want
select="$ats/AT_ID[not(.=preceding::AT_ID[ancestor::ROW[R_ID='1
4144']]]">
but it looks horribly inefficient. If you want a solution that's both
portable and efficient, it will probably use keys.
Mike Kay
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list