This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: generalized unique element
- From: "Laura Jenkins" <xsl_list at hotmail dot com>
- To: xsl-list at lists dot mulberrytech dot com
- Date: Wed, 11 Sep 2002 14:09:37 +0000
- Subject: Re: [xsl] generalized unique element
- Reply-to: xsl-list at lists dot mulberrytech dot com
Thanks david that was superb,
as u had suggested
I tried using the keys and was successful ( i referred to jeni's article )
the following is what i did..
<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 ..
same with doing
<xsl:if test="generate-id() = generate-id(key('all-nodes', name(.)[1])">
i understand the use of generate-id() but do not understand
key('',xx)[1]
Thanks for your help
From: David Carlisle <davidc@nag.co.uk>
Reply-To: xsl-list@lists.mulberrytech.com
To: xsl-list@lists.mulberrytech.com
Subject: Re: [xsl] generalized unique element
Date: Wed, 11 Sep 2002 14:40:19 +0100
tried doing something like..
<xsl:if test="not(name(.) = preceding::node()/name())">
the / operator has to have path expressions not functions that return a
string, like name(). You want the second name() to be like te first,
taking the node as argument.
name(preceding::node())
unfortunately you then can't use the magic property of = to test all
elements of a node set, so you then need to use a predicate,something
like
<xsl:variable name="n" select="name(.)"/>
<xsl:if test="preceding::*[name(.)=$n]">
You mentioned though the "Meunchian method" which does
the same using keys which will be quicker on large data sets
David
_____________________________________________________________________
This message has been checked for all known viruses by Star Internet
delivered through the MessageLabs Virus Scanning Service. For further
information visit http://www.star.net.uk/stats.asp or alternatively call
Star Internet for details on the Virus Scanning Service.
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
_________________________________________________________________
MSN Photos is the easiest way to share and print your photos:
http://photos.msn.com/support/worldwide.aspx
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list