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