This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

RE: Preceding: can't filter my nodes?


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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]