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]
Other format: [Raw text]

Re: Re: generalized unique element


Laura Jenkins wrote:
> 
> <xsl:key match="*" use="name(.)" name="all-nodes"/>
> ...
> <xsl:if test="count(.| key('all-nodes', name(.))[1]) = 1">
> 
> It works fine, i however do not understand what goes on 
> in the above line..
> I would be thankful if u can please explain me the
> 1.use of count in the above statement.
> 2.especially the use of key('',xx)[1] above ..

It looks like we're building up a table of occurrences for node names in the first statement, then testing to see if this is the first time we've seen that name. The sort of thing that other languages might use a hash table for, somewhere inside a loop:

$node{$name}++;
if ($node{$name} == 1) {
  # do the thing ...
}

Apologies for the potentially unclear explanation, XSLT is only just beginning to get itself around my head (definitely not the other way around).

 Stewart



 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]