Subject: Re: [xsl] Exclude by Sibling Condition From: Michael B Allen <mba2000@xxxxxxxxxx> Date: Thu, 1 Dec 2005 23:05:20 -0500 |
On Thu, 1 Dec 2005 20:07:27 -0600 "Jay Bryant" <jay@xxxxxxxxxxxx> wrote: > Hi, Mike, > > That's a question to which you can find an answer in Dave Pawson's FAQ at > http://www.dpawson.co.uk/xsl/sect2/N2696.html > > In your case, something like the following will do the trick: > > <xsl:template match="page[not(@tab=following::page/@tab)]"> > <!-- Process the page nodes with unique values for the tab attribute > here --> > </xsl:template> What I ended up doing is the following: <xsl:for-each select="page"> <xsl:variable name="prev" select="preceding-sibling::page[position()=1]"/> <xsl:if test="not($prev) or @tab!=$prev/@tab"> I'm not sure how this differs from your method but I found that a) [position()=1] must be used to isolate only the immediate sibling and b) the @tab!=$prev/@tab strangely returns false if $prev is nil. Mike > You can do the same trick in the select attributes of apply-templates or > for-each instructions, too, depending on exactly what you need to do. > > Jay Bryant > Bryant Communication Services > > > ----- Original Message ----- > From: "Michael B Allen" <mba2000@xxxxxxxxxx> > To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx> > Sent: Thursday, December 01, 2005 3:53 PM > Subject: [xsl] Exclude by Sibling Condition > > > > Considering the following XML fragment: > > > > <page name="p0" tab="products"/> > > <page name="p1" tab="products"/> > > <page name="p2" tab="products"/> > > <page name="d" tab="downloads"/> > > <page name="s" tab="support"/> > > > > How can I select a subset that excludes elements with a tab attribute > > value matching that of a previous sibling? > > > > Meaning I want a list with no redundant @tab values like: > > > > <page name="p0" tab="products"/> > > <page name="d" tab="downloads"/> > > <page name="s" tab="support"/> > > > > Thanks, > > Mike
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Exclude by Sibling Condit, Jay Bryant | Thread | Re: [xsl] Exclude by Sibling Condit, Ragulf Pickaxe |
Re: [xsl] formatting lines to a fix, Kamal Bhatt | Date | Re: [xsl] Exclude by Sibling Condit, Ragulf Pickaxe |
Month |