RE: [xsl] XPATH simple question

Subject: RE: [xsl] XPATH simple question
From: "Michael Kay" <mhk@xxxxxxxxx>
Date: Mon, 10 Mar 2003 20:13:57 -0000
> I want to select SYSTEMS but i dont want to repeat those 
> systems that have the same id
> 
> i have make this and works:
> 
> <xsl:template match="SYSTEMS">
>  <xsl:apply-templates select="SYSTEM[(@ID != 
> (preceding::SYSTEM/@ID))]"/> </xsl:template>
> 
> but this doesnt work:
> 
> <xsl:template match="SYSTEMS">
> <xsl:apply-templates select="SYSTEM[(@ID != 
> (following::SYSTEM/@ID)) OR (@ID != 
> (preceding::SYSTEM/@ID))]"/> </xsl:template>
> 
> can somebody helpme?

You want [not(@ID = preceding-sibling::SYSTEM/@ID)]

Note that "not(A=B)" here means "A is not equal to any node in B", while
"A!=B" means "there is a node in B that A is not equal to".

Also you only need to search the preceding-sibling axis, not the much
more expensive preceding axis.

Michael Kay
Software AG
home: Michael.H.Kay@xxxxxxxxxxxx
work: Michael.Kay@xxxxxxxxxxxxxx 



 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread